tbl*_*tbl 4 junit tomcat log4j
我正在开发web servlet并且与log4j.properities混淆了,我定义了在构造函数中调用initialize logger.
public static Logger logger = Logger.getLogger(MyProject.class.getName());
public MyProject() {
super();
// TODO Auto-generated constructor stub
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource("log4j.properties");
PropertyConfigurator.configure(url);
}
Run Code Online (Sandbox Code Playgroud)
通常,关于web servlet的日志文件是指tomcat的日志目录.
log4j.rootLogger=debug, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.base}/logs/myproject.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)
但是,在为webservlet编写jUnit时,日志文件指的是不正确的地址,因为$ {catalina.base}是空白文本.错误日志在这里.
[junit] log4j:ERROR setFile(null,true) call failed.
[junit] java.io.FileNotFoundException: /logs/myproject.log (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
所以,请教我明智的管理日志文件.我希望在通过jUnit测试时停止输出日志文件.
您应该log4j.properties为tomcat部署和单元测试单独维护.log4j.properties调试信息上的单元测试可能更重,而部署版本应该最小化日志记录输出以避免拖累性能.
这样做需要您正确地处理类路径,以便为单元测试log4j.properties选择单元测试,但不将其打包到WAR中.传统上,这进入了src/test.
| 归档时间: |
|
| 查看次数: |
1716 次 |
| 最近记录: |