2011-05-25 71 views
0

编辑:所以看来问题出现在我的日志处理程序/ appenders和根记录器的日志级别。不知何故,HQ(简单地说是另一个应用程序)将其日志配置为获取所有日志消息。我需要的是禁止我的jsa处理程序向上传递日志消息。利用log4j记录到某个文件(总部问题)

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

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

问题:HQ日志以某种方式获取来自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的灵活性,但我怀疑它冷做了这个伎俩。

回答

0

问题不在于日志记录(虽然可用的additivity选项),但在groovy文件所在的目录中。在HQ版本4.3中,hq-plugins中的所有文件都保存到tmp目录,并且更改后的文件也保存在那里(所以如果你有一个文件foo.txt并将它放在那里,它会保存在tmp中;如果你以某种方式修改它,它也会保存在tmp中)。

解决方案:只需将日志,常规脚本和其他文件从hq-plugins移除到其他位置即可。在这种情况下,Tmp目录是$HQ_HOME/server/hq-engine/hq-server/default/tmp/deploy/