如何让AppEngine仅为我的应用程序记录信息级别?

时间:2013-06-26 09:24:41

标签: google-app-engine

所以我尝试根据this guide配置AppEngine日志记录,确保我已经配置了要在web.xml中使用的logging.properties文件。我已按以下方式配置logging.properties:

.level = WARNING
nilsnett.chinese.backend.level = INFO 

我的日志记录包装器的包名称是nilsnett.chinese.backend。问题是即使使用此配置,我的应用程序的信息级日志输出也会被过滤。证据:

enter image description here

我还尝试了以下配置,它产生了相同的结果(包括包名末尾的记录器类名):

.level = WARNING
nilsnett.chinese.backend.JavaUtilLogger.level = INFO

为了演示实际读取logging.properties文件,并且我实际上在此服务调用中将信息级别的日志记录数据写入app-engine,让我告诉你在设置.level=INFO时会发生什么:

enter image description here

所以我想要的结果是从我的包获得INFO和更高级别的日志输出,而其他包(如org.datanucleus)仅在WARNING或更严重的情况下显示输出。在上面的例子中,我只想要用紫色星标记的两条线。我做错了吗?

1 个答案:

答案 0 :(得分:1)

将您的配置更改为:

.level = WARNING

# Set the default logging level for the datanucleus loggers
DataNucleus.JDO.level=WARNING
DataNucleus.Persistence.level=WARNING
DataNucleus.Cache.level=WARNING
DataNucleus.MetaData.level=WARNING
DataNucleus.General.level=WARNING
DataNucleus.Utility.level=WARNING
DataNucleus.Transaction.level=WARNING
DataNucleus.Datastore.level=WARNING
DataNucleus.ClassLoading.level=WARNING
DataNucleus.Plugin.level=WARNING
DataNucleus.ValueGeneration.level=WARNING
DataNucleus.Enhancer.level=WARNING
DataNucleus.SchemaTool.level=WARNING

# FinalizableReferenceQueue tries to spin up a thread and fails.  This
# is inconsequential, so don't scare the user.
com.google.common.base.FinalizableReferenceQueue.level=WARNING
com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue.level=WARNING

这是来自日志配置模板,所以要将datanucleus设置为警告,你就像在这个模板中一样。 https://developers.google.com/appengine/docs/java/#Logging

然后只需添加自己的日志配置:

nilsnett.chinese.backend.level = INFO 

这应该解决它