如果App Engine自动将stdout和stderr记录为INFO和WARNING级别,为什么还需要使用logging.properties?

5
根据Google App Engine for Java的文档:
App Engine Java SDK包括一个模板logging.properties文件,在appengine-java-sdk/config/user/目录中。要使用它,请将该文件复制到WEB-INF/classes目录(或WAR中的其他位置),然后将系统属性java.util.logging.config.file设置为“WEB-INF/classes/logging.properties”(或根据应用程序根目录选择的任何路径)。您可以按照以下方式在appengine-web.xml文件中设置系统属性:
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    ...

    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties" />
    </system-properties>

</appengine-web-app>

Google Plugin for Eclipse的新项目向导会为您创建这些日志配置文件,并自动将它们复制到WEB-INF/classes/。对于java.util.logging,您必须设置系统属性以使用此文件。

如果您写入标准输出或标准错误输出,将自动记录为INFO或WARNING。

那么,为什么需要使用logging.properties文件?

这是否会使您对日志记录有更多控制权?

1个回答

6
如果您想使用更具体的日志信息,比如一些DEBUG信息。这样,您就可以在开发过程中记录更多的信息,并且在将代码投入生产时无需更改代码。
个人示例:当我编码时,我会记录大量的信息(记录级别FINE和FINEST)。当我将应用程序发送给测试人员时,他们使用DEBUG级别。在生产中(对公众),只有INFO、WARNING和SEVERE进行日志记录。
总之,这给了您更多的控制权,并且您不需要更改任何代码。
有关java日志记录的更多信息: 这里

3
FINE, FINERFINEST 在 GAE 日志控制台中表示为 DEBUG - user177800

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接