检查正在运行的Java进程的log4j属性
我想知道是否有一种方法可以检查正在运行的Java进程的log4j属性。我面临一个与此相关的问题。我将配置设置为信息级别,并使用滚动文件追加器。系统启动并正常工作一分钟,并将日志保存到相应的文件中。但突然,它开始在调试级别记录到控制台,而不再进入文件。很可能一些模块将Log4j属性重置为其他值。我尝试在Log4j属性配置器的几个方法上设置中断。但这并没有起到多大的作用,因为我并没有在适当的方法上设置中断。 任何线索都将不胜感激 我用下面的配置配置了log4j,但几秒钟后该配置似乎不再有效检查正在运行的Java进程的log4j属性,java,logging,log4j,Java,Logging,Log4j,我想知道是否有一种方法可以检查正在运行的Java进程的log4j属性。我面临一个与此相关的问题。我将配置设置为信息级别,并使用滚动文件追加器。系统启动并正常工作一分钟,并将日志保存到相应的文件中。但突然,它开始在调试级别记录到控制台,而不再进入文件。很可能一些模块将Log4j属性重置为其他值。我尝试在Log4j属性配置器的几个方法上设置中断。但这并没有起到多大的作用,因为我并没有在适当的方法上设置中断。 任何线索都将不胜感激 我用下面的配置配置了log4j,但几秒钟后该配置似乎不再有效 log4
log4j.rootLogger=INFO, A1,A2
log4j.appender.A1 = org.apache.log4j.RollingFileAppender
log4j.appender.A1.File = ${storm.home}/logs/${logfile.name}
log4j.appender.A1.Append = true
log4j.appender.A1.DatePattern = '.'yyy-MM-dd
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss:SSS} %c{1} [%p] %m%n
log4j.appender.A2=com.proptotype.poc.CustomAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS} %c{1} [%p] %m%n
log4j.appender.A2.myName=scribe
log4j.appender.A2.scribeHost=127.0.0.1
log4j.appender.A2.scribePort=1464
如果您使用的是log4j2,那么可以使用JMX查询和修改当前的记录器配置
它甚至有一个小型Gui应用程序来实现这一点:如果您想了解当前的日志级别,可以按如下方式进行操作
System.out.println(Logger.getRootLogger().getLevel());
同样,您也可以从Logger类中找到其他属性,例如:
Enumeration enums = Logger.getRootLogger().getAllAppenders();
while (enums.hasMoreElements()) {
System.out.println(enums.nextElement().toString());
}
请出示您的log4j.properties