java - 使用 Log4j 捕获异常

标签 java eclipse google-app-engine exception dashboard

异常的 log4j.category.DataNucleus 是什么?因此,我尝试将 Log4j 与 Google App Engine 结合使用,但是在测试过程中,Lo4j 没有检测到异常(仪表板检测到了异常)。

此外,我希望能够找出所有错误。所以我把它添加到主类中。这会拾取所有错误,包括 fatal error 吗?

   logger.fatal ("App Error");

好的,所以我尝试了这个:

 }
     catch(Exception e) {
            logger.warn("Log4j has caught n exception!", e);
            e.printStackTrace();
        }

然而,异常显示在仪表板中,但不是 log4j 拾取它,因为它没有给我“Log4j 已捕获 n 异常!”。

最佳答案

异常的 log4j.category.DataNucleus 是什么?

log4j.logger.DataNucleus

一般

我不使用 Eclise 也不使用 Log4J(当然,DataNucleus 使用它除外)。我的日志配置文件中有以下内容。

log4j.properties

log4j.appender.A1 = org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = %d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n

[...]

# Tighten logging on the DataNucleus categories to WARN.
# This DataNucleus logging configuration appears redundant; in production,
# DataNucleus uses Java logging instead.
log4j.logger.DataNucleus                 = WARN, A1
log4j.logger.DataNucleus.JDO             = WARN, A1
log4j.logger.DataNucleus.Persistence     = WARN, A1
log4j.logger.DataNucleus.Query           = WARN, A1
log4j.logger.DataNucleus.Lifecycle       = WARN, A1
log4j.logger.DataNucleus.Cache           = WARN, A1
log4j.logger.DataNucleus.MetaData        = WARN, A1
log4j.logger.DataNucleus.Management      = WARN, A1
log4j.logger.DataNucleus.General         = WARN, A1
log4j.logger.DataNucleus.Connection      = WARN, A1
log4j.logger.DataNucleus.Transaction     = WARN, A1
log4j.logger.DataNucleus.Datastore       = WARN, A1
log4j.logger.DataNucleus.ClassLoading    = WARN, A1
log4j.logger.DataNucleus.Plugin          = WARN, A1
log4j.logger.DataNucleus.ValueGeneration = WARN, A1
log4j.logger.DataNucleus.Enhancer        = WARN, A1
log4j.logger.DataNucleus.SchemaTool      = WARN, A1

日志记录属性

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

[...]

# Set the default logging level for ORM, specifically, to WARNING
DataNucleus.level                 = WARNING
DataNucleus.JDO.level             = WARNING
DataNucleus.Persistence.level     = WARNING
DataNucleus.Query.level           = WARNING
DataNucleus.Lifecycle.level       = WARNING
DataNucleus.Cache.level           = WARNING
DataNucleus.MetaData.level        = WARNING
DataNucleus.Management.level      = WARNING
DataNucleus.General.level         = WARNING
DataNucleus.Connection.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

logger.fatal(“应用程序错误”);

我从未编写过 Log4J 代码。此命令不仅仅会在致命级别记录一个文本条目“App Error”吗?

喜欢吗?

关于java - 使用 Log4j 捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768933/

相关文章:

python - GAE 给我发电子邮件错误

python - download_app 和 coursebuilder 遇到问题

要添加到我的项目中的 Javasign 库

java - 使用 jquery 和 thymeleaf 动态显示图像

java - 我的 GUI 没有完全显示

java - 错误 : com. jayway.maven.plugins.android.generation2 :android-maven-plugin:3. 6.0:generate-sources

php - 任何有效的 php 调试器,PDT?

java - 将 "List<SelectItem>"值连接到字符串作为 csv

android - 签署我的安卓项目

postgresql - 是否可以使用 golang 从应用程序引擎灵活连接到谷歌云 sql postgres 实例?