【问题标题】:Logging to certain file utilizing log4j (problem with HQ)使用 log4j 记录到某个文件(HQ 的问题)
【发布时间】:2011-05-25 13:47:31
【问题描述】:

编辑: 所以看来问题出在我的日志处理程序/附加程序和根记录器的日志级别。不知何故,总部(只是另一个应用程序)将其日志配置为获取所有日志消息。我需要的是禁止我的 jsa 处理程序将日志消息向上传递。

嗨。我的日志记录有问题。

信息:我在服务器上运行了几个应用程序(包括 hyperic,进一步的 HQ)。服务器上还运行着一个 groovy 应用程序/脚本。 HQ 触发了一个脚本,但实际上并没有与之集成,这意味着 HQ 所知道的关于 groovy 脚本的所有信息都是由 groovy 脚本生成的命令行中的输出。

问题:总部日志以某种方式从 groovy 脚本中获取所有消息。我可能会假设当 groovy 进行日志记录时,它还会将所有日志打印到标准 java 日志,而后者又被 HQ 覆盖。

我有一个用于 groovy 脚本的 log4j 配置,它应该无法记录到默认的 java 日志。

log4j.rootLogger=info, jsa
log4j.logger.net.schmizz.sshj=WARN

#Defining logger scope and it's params
log4j.logger.mypackage=INFO, jsa
log4j.appender.jsa=org.apache.log4j.RollingFileAppender
log4j.appender.jsa.File=logs/jsa.log
log4j.appender.jsa.MaxFileSize=1MB
log4j.appender.jsa.MaxBackupIndex=5
log4j.appender.jsa.layout=org.apache.log4j.PatternLayout
log4j.appender.jsa.layout.ConversionPattern=%d [%t] %-5p %c (%F:%L) - %m%n

虽然我仍然得到所有讨厌的日志记录。

P.S.:我也使用 slf4j 来获得灵活性,尽管我怀疑它是否能做到这一点。

【问题讨论】:

    标签: logging log4j hyperic


    【解决方案1】:

    问题不在于日志记录(尽管可加性选项在这里很有用),而在于 groovy 文件所在的目录。在 HQ 版本 4.3 中,hq-plugins 中的所有文件都保存到 tmp 目录,并且更改的文件也保存在那里(所以如果你有一个文件 foo.txt 并且你把它放在那里,它将被保存在 tmp 中;如果你不知何故修改它,它也会保存在tmp中,再次)。

    解决方案:只需将日志、groovy 脚本和其他文件从 hq-plugins 删除到其他位置。本例中的tmp目录为$HQ_HOME/server/hq-engine/hq-server/default/tmp/deploy/

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      相关资源
      最近更新 更多