0

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

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

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

4

1 回答 1

0

问题不在于日志记录(尽管可加性选项在这里很有用),而在于 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/

于 2011-05-26T14:56:24.243 回答