锁定老帖子 主题:log4j屏蔽system.out的方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (17) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-08
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-04-08
设置不同的Appender
|
|
返回顶楼 | |
发表时间:2010-04-08
helin 写道 设置不同的Appender
怎么设置?说详细点好吗? |
|
返回顶楼 | |
发表时间:2010-04-08
log4j没有现成的功能做这个。如果你要做,一个办法是重定向console的output到一个stream,然后吧stream导入log4j 的appender里面。更简单的办法是search and replace.
|
|
返回顶楼 | |
发表时间:2010-04-08
public static void setStdoutWithLogger(String logName)
{ System.setOut(new LoggerPrintStream(logName)); } class LoggerPrintStream extends PrintStream{ Logger logger; public LoggerPrintStream(String logName) { super(new ByteArrayOutputStream(0)); logger = Logger.getLogger(logName); if( logger == null) throw new RuntimeException("Can't logger:"+pLoggerName); } public void println(String s) { log(s,level); } ///其它它代码略....... } |
|
返回顶楼 | |
发表时间:2010-04-09
如果你的配置像这样:
log4j.logger.com.xx.xxxx=debug, console2 那么紧接着再配一句: log4j.additivity.com.xx.xxxx=debug, console2 就可以把日志打印到指定文件中,而不是控制台上 |
|
返回顶楼 | |
发表时间:2010-04-09
楼上的方法只是合适rootLogger是控制台输出的方式。而且只需要log4j.additivity.com.xx.xxx=false即可。楼主的意思是想用Log4j来屏蔽在代码中hardcode 的 system.out.println()...暂时坐等高手回复
|
|
返回顶楼 | |
发表时间:2010-04-09
据我所知不行,只能让程序员不写system.out
|
|
返回顶楼 | |
发表时间:2010-04-09
codeutil 写道 public static void setStdoutWithLogger(String logName)
{ System.setOut(new LoggerPrintStream(logName)); } class LoggerPrintStream extends PrintStream{ Logger logger; public LoggerPrintStream(String logName) { super(new ByteArrayOutputStream(0)); logger = Logger.getLogger(logName); if( logger == null) throw new RuntimeException("Can't logger:"+pLoggerName); } public void println(String s) { log(s,level); } ///其它它代码略....... } 这个不错,我们就这么用了,关键有时候不是System.out,就是e.printStackTrace()生成的日志特别乱。 这样就是相当于重定向。 |
|
返回顶楼 | |
发表时间:2010-04-09
最后修改:2010-04-09
以下加上注释即可
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[spboss]%d %p [%c] - <%m>%n 程序员写的system.out好像没法屏的吧 |
|
返回顶楼 | |