【问题标题】:How to add logs to java agent where log level can be changed dynamically如何将日志添加到可以动态更改日志级别的Java代理
【发布时间】:2015-12-15 12:27:29
【问题描述】:

我需要在我的 javaagent 中添加调试点。我在一个班级有我的premain 方法,在另一个班级有AgentClassFileTransformer。由于我的组织使用以下使用org.apache.commons.logging 包的方法,我也尝试使用该方法。

private static final Log log = LogFactory.getLog(InstrumentingAgent.class);

但是,如果我只将 log4j.properties 文件添加到项目的资源文件夹中,它会使用 premain 方法从类中打印日志。

但是对于实现ClassFileTransformer 的类,它说找不到附加程序。但是,如果我再次将 commons-logging.properties 文件添加到同一个资源文件夹,那么它将打印控制台中所需的所有日志。 (即使我使用 log4j 类型的记录器如下,它仍然说找不到 Transformer 类的附加程序)

Commons-logging.properties

org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger

Transformer 类的警告

log4j:WARN No appenders could be found for logger (InstrumentationClassTransformer).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

在我的情况下,我将在我的代理中添加调试级别日志。但是当代理与产品一起运行时,它不应该在控制台上打印调试日志。在 log4j 方面,我已经阅读了有关使用 setLevel(Log.level) 方法设置记录器的日志级别的信息。但由于我使用的是 commons-logging 的 LogFactory,它也没有提供任何设置级别的选项。因此,我想就如何克服这种情况提出一些建议。

我怎样才能让它工作?这是可以实现的还是我需要更改日志记录机制?

更新 1

我什至添加了包名,正如 madhawa 所说,但它仍然不打印 ClassFileTransformer 的日志。

log4j.rootLogger=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.logger.org.javaagent.instrumentation=DEBUG

【问题讨论】:

  • 除了你上面写的:你可能想看看 SLF4J,它让你有机会将许多相关的不同日志框架(commons logging,log4j,...)组合到一个框架中。
  • 你能显示你当前的 log4j.properties 文件吗?
  • 我在更新 1 中添加了它
  • 添加字符串 confPath = "/path/to/log4j.properties"; PropertyConfigurator.configure(confPath);到你的主要功能,看看它是否接受配置

标签: java logging log4j javaagents apache-commons-logging


【解决方案1】:

您似乎没有正确配置 log4j.properties 文件。请添加相关包,然后重试。

【讨论】:

  • 我添加了更新 1 中给出的包名称。但它仍然说找不到 org.javaagent.instrumentation.InstrumentationClassTransformer 的附加程序
猜你喜欢
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 2016-07-25
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
相关资源
最近更新 更多