回答
您可以使用此配置进行日志记录,也可以更改日志文件的路径。
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#Redirect to Tomcat logs folder
#log4j.appender.file.File=${catalina.home}/logs/logging.log
log4j.appender.file.File=./logs/test.log // change your path
log4j.appender.file.MaxFileSize=10MB
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.logger.org.springframework=WARN
log4j.logger.com.amstech=DEBUG
例如,登录你的两个包的文件是:
com.abhi.packageOne; -> packageOneFile.log
com.abhi.packageTwo; -> packageTwoFile.log
添加rootLogger作为文件或控制台。你可以保留任何记录水平,即跟踪,信息,errror等按您的要求
log4j.rootLogger=Debug, file
你必须为你的两个包
log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.File=/path/main.log
log4j.appender.MAIN_LOG.layout=org.apache.log4j.PatternLayout
log4j.appender.PACKAGE_ONE=org.apache.log4j.RollingFileAppender
log4j.appender.PACKAGE_ONE.File=/path/packageOneFile.log
log4j.appender.PACKAGE_ONE.layout=org.apache.log4j.PatternLayout
log4j.appender.PACKAGE_TWO=org.apache.log4j.RollingFileAppender
log4j.appender.PACKAGE_TWO.File=/path/packageTwoFile.log
log4j.appender.PACKAGE_TWO.layout=org.apache.log4j.PatternLayout
您需要设置相应的加创建两个新的附加目的地。
什么是addictivity?
为了避免日志冗余,我们可以使用Log4j可加性。只需将Log4j记录器的additivity属性设置为false,然后传递到该记录器的日志消息就不会传播到其父记录器。因此,我们新的Log4j配置文件将为:
log4j.additivity.com.abhi.packageOne=false
log4j.additivity.com.abhi.packageTwo=false
log4j.logger.com.abhi.packageOne=DEBUG, PACKAGE_ONE
log4j.logger.com.abhi.packageTwo=DEBUG, PACKAGE_TWO
log4j.rootLogger=DEBUG, MAIN_LOG
其中MAIN_LOG是您的常规日志文件。如果您想在MAIN_LOG中打印来自PACKAGE_ONE和PACKAGE_TWO的日志,请在下面的行中加入。
log4j.rootLogger=DEBUG, MAIN_LOG , PACKAGE_ONE , PACKAGE_TWO
log4j.rootLogger = DEBUG,MAIN_LOG,PACKAGE_ONE,PACKAGE_TWO这个声明做了什么?你能详细解释一下吗? 以及log4j.additivity.com.abhi.packageOne = false以及log4j.rootLogger = DEBUG,MAIN_LOG,PACKAGE_ONE是否需要同时? – user1846749
我以相同的方式定义了记录器。在我的情况下,日志是在控制台而不是文件中出现的,我没有在任何地方定义控制台appender - 可能是什么原因? – user1846749
您需要在所有这些语句之上添加'log4j.rootLogger = debug,file'。我已经更新了答案。 –
- 1. Log4j单独的日志
- 2. Log4J:将Stderr消息重定向到主日志文件
- 3. 将log4j消息从一种方法重定向到另一个日志文件
- 4. 多个log4j日志文件
- 5. 如何将docker日志重定向到单个文件?
- 6. 使用slf4j api将日志重定向到log4j
- 7. 使用Log4j的多个日志文件
- 8. 输出到几个日志文件? (Unity3D)
- 9. 解析log4j日志文件
- 10. Log4j - 无法找到日志文件
- 11. 未找到Log4j日志文件
- 12. Log4j 2日志正在写入Log4j日志文件
- 13. 使用Log4j的日期日志文件
- 14. log4net ....单独的日志文件
- 15. Log4J日志在UNIX到catalina.out中,而不是日志文件
- 16. Log4j日志记录到log4j.log而不是指定的文件名
- 17. 将预期的输出重定向到日志文件预期
- 18. 将ReportMemoryLeaksOnShutdown的结果重定向到日志文件
- 19. 将git命令的错误重定向到日志文件
- 20. 重定向不同的日志框架输出到文件
- 21. 日志事件在一个单独的log4net的日志
- 22. 单独的日志文件为同一类的单独实例
- 23. 如何将Apache日志重定向到STDOUT和Apache日志文件
- 24. 的Log4j + JSF - 日志文件是空的
- 25. SparkJava将log4j重定向到一个文件
- 26. 我的log4j日志文件太大
- 27. perl系统命令重定向到日志文件
- 28. 重定向打印到日志文件,也在子进程中
- 29. 将“puts”命令输出重定向到日志文件
- 30. 将git包创建输出重定向到日志文件
哪里是包的名字,其记录将被重定向到log4j.appender.file.File = /日志/ test.log中,并在那里被指定其余日志会默认catalina.out的? – user1846749