如何将javax.mail.Session setDebugOut重定向到log4j logger?
是否可以仅将mailSession调试重定向到记录器?
我的意思是,有类似的解决方案
它将所有标准输出重新分配到log4j
--System.setOut(new Log4jStream())
最好的祝福
在我的项目测试套件中有很大的用途
System.out.println
Run Code Online (Sandbox Code Playgroud)
我正在尝试将这些输出重定向到日志文件(通过配置或单点而不重构整个项目),以便在必要时可以禁用以提高性能.我正在使用log4j进行日志记录.有人知道这可能吗?如果是这样怎么办?提前致谢.
我正在使用Windows 2008 R2和Apache Tomcat 5.5,以获取您的信息.
STDOUT和STDERR可以通过Logging选项卡 - > Redirect Stdout和Redirect Stderror文本框自动记录Apache Tomcat属性.
但是我想通过log4j来控制它.
我正在尝试利用ConsoleAppender和TimeAndSizeRollingAppender类来翻转通常由Apache Tomcat的先天日志记录控制的内容.
基本上,但是Tomcat将stdout和stderr重定向到一个文件,我想使用log4j和log4j.properties文件做同样的事情.
我做了一些挖掘这个网站和其他人喜欢这个(log4j重定向标准输出到DailyRollingFileAppender)和这个(http://sysgears.com/articles/how-to-redirect-stdout-and-stderr-writing-to-a -log4j-appender#comment-749),但我遇到了一些基本问题:
如何编译这些类中的任何一个?什么应该是classpath?我尝试从sysgears链接编译该类,但它返回7个错误,例如无法找到符号Class Logger和符号Class OutputStream.
编译后,特别是从sysgears链接,我该如何使用该类?它声明要使用该类,只需写:
System.setErr(new PrintStream(new LoggingOutputStream(System.err,Logger.getLogger("outLog"),Level.ERROR)));
太好了,但我在哪里写呢?在一个单独的文件?Tomcat属性?
我将不胜感激任何帮助.
非常感谢您的宝贵时间.
更新:
这是我的完整log4j.properties文件:
log4j.rootLogger=INFO, CATALINA, LOCALHOST, MANAGER, HOST-MANAGER, ADMIN, CONSOLE
# Define all the appenders
log4j.appender.CATALINA=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.CATALINA.file=D:/Program Files (x86)/Apache Software Foundation/Tomcat- 5.5.28/logs/catalina.log
log4j.appender.CATALINA.Threshold=DEBUG
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout
log4j.appender.CATALINA.MaxFileSize=20KB
log4j.appender.CATALINA.DateRollEnforced=true
log4j.appender.CATALINA.MaxRollFileCount=100
log4j.appender.CATALINA.ScavengeInterval=-1
log4j.appender.CATALINA.BufferedIO=false
log4j.appender.CATALINA.CompressionAlgorithm=ZIP
log4j.appender.CATALINA.layout.conversionPattern = %-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n
log4j.appender.LOCALHOST=org.apache.log4j.appender.TimeAndSizeRollingAppender
log4j.appender.LOCALHOST.file=D:/Program Files (x86)/Apache Software …
Run Code Online (Sandbox Code Playgroud)