我试图在运行时在代码中修改log4j2的当前配置。
我按照这里的指示 -
http://logging.apache.org/log4j/2.x/manual/customconfig.html#AddingToCurrent 在初始化后以编程方式修改当前配置。
我遇到这条线路的问题 -
Layout layout = PatternLayout.createLayout(PatternLayout.SIMPLE_CONVERSION_PATTERN, config, null,
null,null, null);
因为该代码不起作用,API中的构造函数与此完全不同。 API中的构造函数请求您提供一个模式选择器,我似乎无法找到很多信息,我尝试使用DefaultSelector,并使用我在这里找到的两个选择器https://logging.apache.org/log4j/2.x/manual/layouts.html(标记模式选择器和脚本模式选择器)并尝试为他们添加import语句,但我的程序找不到这些类。
我应该使用
createDefaultLayout(Configuration configuration)
而不是PatternLayout的方法,因为它将使用提供的配置的默认选项创建一个模式布局?
我注意到的一件事是在createLayout方法下我遇到了麻烦,它说它在它下面 -
Deprecated.
Use newBuilder() instead. This will be private in a future version.
这是否意味着这种方法现在已经过时了,我根本不应该使用它?它要求使用newBuilder为自定义模式布局创建构建器吗?
此API -
https://logging.apache.org/log4j/2.0/log4j-core/apidocs/org/apache/logging/log4j/core/layout/PatternLayout.Builder.html
似乎是一个允许我提供配置文件的构建器,并且有方法来构建自己的自定义模式布局? (但是,有一个withPatternSelector的方法,我找不到任何关于这个的方法,所以我希望如果我没有指定模式选择器,它将只使用默认值?)
在运行时期间更改代码中的log4j2配置哪个方法更好?或者如果有第三种方法比你知道的更好吗?
基本上,我希望能够更改例如要保存的文件的数量(默认翻转策略)或基于时间的触发策略的天数。
有没有简单的方法呢?
感谢您的帮助。