【问题标题】:Catching exceptions with Log4j使用 Log4j 捕获异常
【发布时间】:2013-03-24 00:46:06
【问题描述】:

异常的 log4j.category.DataNucleus 是什么?因此,我尝试将 Log4j 与 Google App Engine 一起使用,但是在测试期间 Lo4j 没有接收到异常(它们被仪表板接收到)。

我还希望找出所有错误。所以我把它添加到主类中。这会检测到包括fatel 在内的所有错误吗?

   logger.fatal ("App Error");

好的,我试了一下:

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

但是,异常显示在仪表板中,但不是 log4j 正在处理它,因为它没有给我“Log4j 已捕获 n 个异常!”。

【问题讨论】:

    标签: java eclipse google-app-engine exception dashboard


    【解决方案1】:

    异常的 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
    

    logging.properties

    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" 条目?

    喜欢吗?

    【讨论】:

    • 如果你觉得我的回答很有用(你已经打勾了!)那么请随时给我投票看看它的用处。
    猜你喜欢
    • 2013-03-24
    • 1970-01-01
    • 2017-07-14
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多