【发布时间】:2009-11-26 10:41:10
【问题描述】:
我犯了一个错误,在代码部署到生产环境之前没有从代码中删除调试行,一些不应该在日志中的信息在 jboss 日志文件中。如何使 java 程序通过关键字过滤所有不需要的行?或者已经有任何工具可以做到这一点?
【问题讨论】:
我犯了一个错误,在代码部署到生产环境之前没有从代码中删除调试行,一些不应该在日志中的信息在 jboss 日志文件中。如何使 java 程序通过关键字过滤所有不需要的行?或者已经有任何工具可以做到这一点?
【问题讨论】:
JBoss 的日志记录由 log4j 处理,log4j 配置文件为conf/jboss-log4j.xml。看看这个,如果有必要阅读 log4j 手册,它应该是不言自明的。如果您需要更多帮助,请给我们一些您想要删除的行的示例。
【讨论】:
听起来您在问如何从现有日志中删除某些行。
无论出于何种原因,在生产中启用调试后,我都会使用以下方法删除 DEBUG 消息:
perl -w -n -i -e 'print unless ( /DEBUG/../ERROR|WARN|INFO|FATAL/ && !/ERROR|WARN|INFO|FATAL/)' server.log.1
您可以替换任何 perlre 仅匹配您想要在上面括号内删除的行,例如:
perl -w -n -i -e 'print unless ( /SensitiveDebugInfo/ )' server.log.1
我会确保只在已翻转的日志上运行此程序,以避免 perl 和 jboss 同时写入文件导致潜在的文件损坏。
【讨论】: