我在项目中使用Slf4j和Log4j。在MyClass类中,我有包含loglevel和logpath的字符串值的变量,以及包含appender名称的String列表。我想以编程方式覆盖已在log4j.properties文件中配置的这些变量的值。我遇到的问题是变量LOG是Log4jLoggerAdapter类的类型。这个类没有我可以修改的类变量,也没有我可以用来设置日志级别,日志路径或添加appender的任何setter方法。任何帮助将受到高度赞赏。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
Public class MyClass
private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
答案 0 :(得分:0)
我猜你需要一个ConfigurationFactory
。在调用基础log4j
之前,您必须在程序入口点的早期配置配置。
答案 1 :(得分:0)
slf4j只是各种日志框架的外观。因此,要更改与日志记录框架相关的配置,必须使用该日志记录框架提供的类。 对于log4j,您必须执行
org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(MyClass.class);
LOG.setLevel(..);
有关文件路径和其他详细信息,请参阅link