java - 使用映射诊断上下文 (MDC) 将列值传递给 log4j 准备好的语句

标签 java logging log4j mdc

使用 MDC 将列值和 xml 动态传递到 log4j.xml 中的准备好的语句是否安全。如果是,那么我如何以及何时清除它以避免内存泄漏。

仅供引用 - 许多线程将同时使用我的 log4j。

最佳答案

如果您担心安全性是为了并发,那么我会说您的信息是完全安全的。作为引用,您可以查看logback website

工作线程并不总是可以从启动线程继承映射的诊断上下文的副本。使用 java.util.concurrent.Executors 进行线程管理时就是这种情况。例如,newCachedThreadPool方法创建一个ThreadPoolExecutor,与其他线程池代码一样,它具有复杂的线程创建逻辑。

当要处理请求时,我们将这些值放入 M​​DC(对于 J2EE 应用程序,通常放在 ServletFilter 中),并且当请求处理即将完成时,我们总是删除这些值。

关于java - 使用映射诊断上下文 (MDC) 将列值传递给 log4j 准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440551/

相关文章:

python - Django:如何将每个应用程序记录到单独的文件中

java - Log4j2无法扩展系统属性user.home

java - Neo4j Traverser - 只需获取特定类型的项目

python - django.db.backends sql 查询调试日志中需要数据库别名(connection_name)

java - java中如何知道excel文件的版本?

maven - 如何在 Maven surefire 中记录单个测试时间

java - log4j 和 apache commons 日志记录有什么区别?

java - 如何只记录一次重复的警告

java - 按下按钮时在同一 Canvas 上绘制多个形状

java - 默认访问类中的公共(public)访问方法..有什么意义?