【问题标题】:switch off logging statements in outputLOG for a particular java thread关闭特定 java 线程的 outputLOG 中的日志记录语句
【发布时间】:2013-02-13 10:30:18
【问题描述】:

我正在运行一个繁重的 java 应用程序。 有一个线程进行轮询并记录所有调试语句。 我无法更改日志记录级别,因为此更改会影响其他线程。

是否有任何可能的方法来关闭 java 中特定线程的调试语句?这将有助于在客户站点中获得非常具体的“outputLOG”文件。

你能帮我解决这个问题吗?

【问题讨论】:

  • 你是指线程实例还是给定线程类?
  • 它是一个“线程”实例。即使将 LOG4j 标记为“调试”模式,这个特定的线程实例也不应该记录它的调试语句。但是,我希望所有其他线程都调试它的语句。
  • 为什么不传递一个布尔值来激活/停用实例的日志。我不认为您可以通过日志配置激活停用实例上的日志...
  • 我正在通过 java executor 生成线程。怎么做?你能解释一下吗?

标签: java multithreading log4j slf4j


【解决方案1】:

我看到了两个简单的解决方案:

  • 传递一个 Runnable 的实例,为日志记录设置 true 或 false
  • 或者它们可能是一种内部方式来检测您是否处于特定情况,具体取决于您传递给 Runnable 的其他数据

【讨论】:

  • 你能给我看一个例子吗?'传递一个 Runnable 的实例,记录为真或假'?
  • new MyRunnable(true); 其中 MyRunnable 是您的 Runnable 类
猜你喜欢
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多