求助,项目启动后并没有在对应位置生成日志文件,项目中配置了log4j.properties文件,也添加了对应jar包

如题,我用的是eclipse。

配置文件如下

log4j.rootLogger=WARN, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Output to the File
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=./jfinal_demo.log
#log4j.appender.file.File=../WebRoot/data/tcbcloud2.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%n%-d{yyyy-MM-dd HH:mm:ss}%n[%p]-[Thread: %t]-[%C.%M()]: %m%n

# Druid
log4j.logger.druid.sql=warn,stdout
log4j.logger.druid.sql.DataSource=warn,stdout
log4j.logger.druid.sql.Connection=warn,stdout
log4j.logger.druid.sql.Statement=debug,stdout
log4j.logger.druid.sql.ResultSet=warn,stdout

在代码中的调用如下

Logger logg=Logger.getLogger(ExceptionInterceptor.class);
private void logWrite(Invocation inv,Exception e){
	        //开发模式
	        if (JFinal.me().getConstants().getDevMode()){
	            e.printStackTrace();
	        }
	        StringBuilder sb =new StringBuilder("\n---Exception Log Begin---\n");
	        sb.append("Controller:").append(inv.getController().getClass().getName()).append("\n");
	        sb.append("Method:").append(inv.getMethodName()).append("\n");
	        sb.append("Exception Type:").append(e.getClass().getName()).append("\n");
	        sb.append("Exception Details:");
	        logg.error(sb.toString(),e);

	    }

主要问题还是出在不生成文件,在控制台的输出是正常的,还是说我没找到正确文件的位置?我在“D:\Workspaces\Eclipse_Oxygen\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\tcbcloud2”这种路径里也没找到,打包放在Tomcat下运行也没找到。。很焦灼。。

评论区

杜福忠

2017-12-15 10:03

没看过log4j的源码,但
./ 这个就会返上一个文件夹, 如:
eclipse里面main运行的时候,就在 工程项目文件夹里面了。
用Tomcat的时候, 就在Tomcat的安装目录里面了

热门反馈

扫码入社