spring - 如何在运行时更改 log4j 中的日志记录级别而不重新启动码头服务器?
问题描述
.setlevel() 选项的选项有很多答案,由于以下原因,这在我的情况下不起作用。
设想:
- 资源下的 log4j.xml 文件在 jetty 启动时保持 ERROR 模式。
代码:
private static Logger logger = Logger.getLogger(test.class);
private static final boolean DEBUG = logger.isDebugEnabled();
if(DEBUG){ //DEBUG will be false as the logging level is set to ERROR
logger.debug("This should print,but it will not print as DEBUG will be set as false during startup");
}
提前感谢您的建议。
解决方案
2个解决方案:
1.纠正一个
将您的模式更改为所需的模式。您不应该像那样在运行时更改日志记录级别。在测试平台上,您的日志级别应该是DEBUG
. 生产时,INFO
.
2.脏一
请参阅使用 slf4j 和 log4j2 动态添加附加程序。它应该是您最新的解决方案。
推荐阅读
- c - 如何检查日期格式是否正确
- java - JSON 到 JSON 的转换:可能的方法
- javascript - Mongoose 中间件挂钩
- c++ - 修改红黑树的插入函数会出错
- javascript - es6 和 es5 语法都不允许在 firebase 云函数中导入
- java - 我如何制作像链表这样的数据结构,但每个节点都包含 N 个元素?
- reactjs - Redux 传奇正在返回不是我操作的有效渠道
- android - 没有 ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION 权限的 android 11 拆分文件崩溃
- kotlin - 如何将数据从 BottomSheetFragment 传递到另一个片段?
- mongodb - 为什么我不能在我的 mongoDB 中引用 React Native 中的嵌套对象?