【问题标题】:Not able to Log only my project logs using Log4j in Java无法在 Java 中使用 Log4j 仅记录我的项目日志
【发布时间】:2017-09-10 07:35:17
【问题描述】:

这是我的 log4j.properties 文件。

log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#outputs to Tomcat home
log4j.appender.file.File=${catalina.home}/logs/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p 

%c{1}:%L - %m%n

这是加载一堆与框架等相关的日志。

我试着放了

log4j.rootLogger=DEBUG only to load only my logs. 

我希望我的日志文件只有我的项目日志。我应该在哪里改变?

我记录我的陈述的方式是

私有 Logger logger = Logger.getLogger(MyClass.class);

logger.debug("bla bla");

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    您应该根据您的应用程序包名称配置logger

    假设,您的应用程序包名称是 test.example,然后在您的 log4j.properties 中添加以下行 -

    log4j.logger.test.example = DEBUG, stdout, file
    log4j.additivity.test.example = false
    

    它将在 test.example 包以及子包中存在的类中启用调试日志。

    要删除框架相关的日志,请将rootLogger 日志级别更改为ERRORWARN -

    log4j.rootLogger=ERROR, stdout, file
    

    它只会显示与框架类或上述包test.example及其子包中不存在的类相关的错误。

    【讨论】:

    • Vikas,这并没有在控制台中显示我自己的包日志。
    • @Aliy 文件怎么样。消息正在登录文件?您如何在课堂上记录消息?你能发布一个示例课程吗?
    • 也更新了记录器语句
    • @Aliy log4j.properties 文件放在哪里?它在类路径上吗?在问题中,您提到您正在获取与框架相关的日志。那些日志语句是调试日志?并且您将它们放在控制台和文件中?
    • properties文件直接放在src下。我正在获取其中所有包的日志。我有一些生成的网络服务类,即使这些日志也在控制台和文件中打印
    【解决方案2】:
    log4j.rootLogger=INFO,myproject
    
    #My logger option
    log4j.logger.com.myproject=ERROR
    log4j.appender.myproject=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.myprojectapp.File=${catalina.home}/logs/myproject.log
    log4j.appender.myproject.DatePattern='.'yyyy-MM-dd
    log4j.appender.myproject.layout=org.apache.log4j.PatternLayout
    log4j.appender.myproject.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -%M - %m%n
    log4j.appender.myproject.Threshold=DEBUG
    
    #to not add myproject logs to other logger
    log4j.additivity.com.myproject=false
    

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多