我以为我找到了一个解决方案,可以通过利用这里引用的jsp标签动态更改自定义appender的级别值;
http://nayidisha.com/techblog/mycontent/posts/nd-utils/site/loggerAdmin.html
不幸的是,链接已损坏,因此我无法下载该实用程序。这篇文章是从2009年开始的,似乎与我的需求完全匹配。任何人对如何完成有任何想法?以下是一个例子:
[log4j.xml]代码段
<logger name="EXAMPLE_LOGGER" additivity="false">
<level value="DEBUG" />
<appender-ref ref="EXXAMPLE_LOG_APPENDER" />
</logger>
我正在寻找一些方法来动态修改“级别值”,而无需重新启动受管服务器或轮询log4j.xml文件。提前感谢任何见解。
答案 0 :(得分:1)
有WebLogic日志库,可以做到这一点。您可以实现使用此库的LOG4J Logger。我们在以前的工作中做到了这一点。我认为这是图书馆:http://docs.oracle.com/cd/E21764_01/web.1111/e13739/config_logs.htm#i1011558
import weblogic.logging.log4j.Log4jLoggingHelper;
import weblogic.logging.LoggerNotAvailableException;
public class MyLog4jTest {
public void testWLSLog4j() {
try {
Logger logger = Log4jLoggingHelper.getLog4jServerLogger();
logger.addAppender(myAppender); // The Appender is configured using either the log4j props file or other custom mechanism.
logger.info("Test log message");
} catch(LoggerNotAvailableException lex) {
System.err.println("Unable to get a reference to the log4j Logger: "+
lex.getMessage())
}
}
}