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

Vik*_*ras 5 java logging google-app-engine java.util.logging

根据Google App Engine for Java的文档:

App Engine Java SDK在appengine-java-sdk/config/user /目录中包含模板logging.properties文件.要使用它,请将文件复制到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>
Run Code Online (Sandbox Code Playgroud)

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

If your write to standard out or standard error, that will automatically get logged as INFO or WARNING.

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

这是否可以为您提供对日志记录的额外控制?

Net*_*rof 6

如果要使用更具体的日志信息,例如某些DEBUG.

这样,您可以在开发过程中记录更多信息,并且在将代码投入生产时无需更改代码.

个人示例:当我编码时,我记录了很多信息(记录Level FINE和FINEST).当我将我的应用程序发送给测试人员时,他们使用DEBUG级别.在生产中(对于公共),只有INFO,WARNING和SEVERE是日志.

总之,这可以为您提供更多控制,而且您不必更改任何代码行.

有关登录java的更多信息: 此处

  • GAE日志控制台中的'FINE`,`FINER`和`FINEST` =`DEBUG` (3认同)