java - 在调用 LoggerFactory.getLogger(${className}) 之前如何调用程序化 log4j2 配置更新
问题描述
我想在调用 LoggerFactory.getLogger(${className}) 之前更新Loggres 或重新配置 log4j2 配置(即这是 slf4j api)。
public void addAppender() {
LoggerContext ctx = (LoggerContext) LogManager.getContext();
Configuration config = ctx.getConfiguration();
PatternLayout layout = PatternLayout.newBuilder()
.withConfiguration(config)
.withPattern("%d{HH:mm:ss.SSS} %msg%n")
.build();
RollingFileAppender appender = RollingFileAppender.newBuilder()
.setConfiguration(config)
.withName("TestAppender")
.withLayout(layout)
.withFileName("logs/TestAppenderlog")
.withFilePattern("Zuzi")
.withPolicy(SizeBasedTriggeringPolicy.createPolicy("10KB"))
.build();
appender.start();
config.addAppender(appender);
LoggerConfig loggerConfig = config.getLoggerConfig("TestAppender") ;
loggerConfig.addAppender(appender, null, null);
ctx.updateLoggers();
}
所以这里我想在我的java spring 应用程序中调用这个addAppender() 方法,调用这个方法的理想位置是什么。
例如:是在 contextInitialized() 方法中还是在任何其他建议中?
解决方案
推荐阅读
- delphi - 打开 DWG 时禁用所有消息
- python - 多线程程序,我做的事情正确吗?任何建议或意见将不胜感激
- node.js - 提供的参数既不是用户也不是角色。DiscordJS v12
- github - Github repo 的贡献者页面没有更新提交、添加和删除的数量
- css - 你如何按组/顺序 CSS 定位 li 项目
- excel - 多选的多依赖下拉菜单
- javascript - 对于js异步函数中的循环不匹配数据
- python - 在python中如何比较两个列表,我们可以不区分大小写?
- bash - 更新文件名中的数字
- android - 更新库且 AppTheme 也更新时膨胀类 com.google.android.material.textfield.TextInputLayout 时出错