Java Log4j-记录内部Log4j事件
我对log4j设置有一些问题 为了解决这些问题,我在log4j属性中启用了内部log4j日志,如下所示:Java Log4j-记录内部Log4j事件,java,logging,log4j,Java,Logging,Log4j,我对log4j设置有一些问题 为了解决这些问题,我在log4j属性中启用了内部log4j日志,如下所示: log4j.debug=true 当我在控制台中得到这样的日志时,它正在工作,这很好: log4j: Parsing for [root] with value=[DEBUG, console, rollingFile, test]. log4j: enter code here`: Level token is [DEBUG]. log4j: Category root set to D
log4j.debug=true
当我在控制台中得到这样的日志时,它正在工作,这很好:
log4j: Parsing for [root] with value=[DEBUG, console, rollingFile, test].
log4j: enter code here`: Level token is [DEBUG].
log4j: Category root set to DEBUG
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
现在我还需要将这些日志保存到文件中。
我添加了FileAppender,它适用于其他日志,但不保存内部log4j日志
整个log4j配置:
#log4j.category.org.hibernate=INFO, hibernate
log4j.category.org.hibernate.SQL=ERROR, hibernate
#log4j.category.org.hibernate.type=ALL, hibernate
log4j.additivity.org.hibernate.SQL=false
#Root logger setting
log4j.rootLogger=DEBUG, console, rollingFile, test
#Appenders configurations.
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyyMMdd HH:mm:ss.SSS} %5p [%t] (%F:%L) - %m%n
log4j.appender.rollingFile=eu.unicorn.pcr.broker.logging.CustodianDailyRollingFileAppender
log4j.appender.rollingFile.File=${catalina.home}/logs/pcr-app.log
log4j.appender.rollingFile.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.rollingFile.MaxNumberOfDays=10
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.conversionPattern=%d{yyyyMMdd HH:mm:ss.SSS} %5p [%t] (%F:%L) - %m%n
#apender for stress request logging
log4j.appender.stressTest=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stressTest.File=${catalina.home}/logs/requests.log
log4j.appender.stressTest.MaxBackupIndex=10
log4j.appender.stressTest.layout = org.apache.log4j.PatternLayout
log4j.appender.stressTest.layout.conversionPattern=%d{HH:mm:ss.SSS} [%t] - %m%n
log4j.category.stressTestLogger=TRACE, stressTest
log4j.additivty.stressTestLogger=false
log4j.appender.hibernate=org.apache.log4j.RollingFileAppender
log4j.appender.hibernate.File=${catalina.home}/logs/hibernate.log
log4j.appender.hibernate.MaxFileSize=20MB
log4j.appender.hibernate.MaxBackupIndex=10
log4j.appender.hibernate.layout = org.apache.log4j.PatternLayout
log4j.appender.hibernate.layout.conversionPattern=%d{yyyyMMdd HH:mm:ss.SSS} [%t] (%F:%L) - %m%n
# Define the test file appender
log4j.appender.test=org.apache.log4j.FileAppender
log4j.appender.test.File=${catalina.home}/logs/test.log
log4j.appender.test.ImmediateFlush=true
log4j.appender.test.Threshold=debug
log4j.appender.test.Append=false
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.conversionPattern=%m%n
log4j.debug=true
如何设置内部log4j日志也将保存在文件中?如果您想将您的日志保存到一个文件中,您必须使用适当的提示
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
你能分享你的日志配置吗?@AleksandrSemyannikov我已经添加了整个log4j.properties。appender“test”是我试图用来保存内部log4j的events@JanDrymlLog4J使用系统输出/错误进行内部日志记录(请参阅)。因此,除非您对某个文件执行某种控制台输出重定向,否则无法将内部日志记录到日志文件。@Ramu谢谢,redirectionI workedi添加了FileAppender设置,对于其他日志,它的工作非常好,而对于前面提到的内部log4j事件(例如:log4j:解析[root]的值)=[DEBUG,console,rollingFile,test])我尝试过您的解决方案,但它不会记录内部log4j事件,我假设它处于调试级别(我还尝试将root级别设置为TRACE,将FileAppender阈值设置为TRACE,但不起作用)但是我不确定,因为它是由log4j自己记录的。拜托,log4j是开源的,你可以很容易地逐步完成log4j的初始化代码,看看它是如何工作的。这比仅仅猜测要好得多,并且可以避免堆栈溢出中的大量噪音。