Java 为web项目设置log4j输出文件:目标文件夹存在问题
我正在尝试设置log4j,我希望输出文件放在我的项目中,特别是放在src/main/resources/logs文件夹中,因为我正处于开发阶段,我更喜欢让它在IDE中立即可见。 我的问题是,我不想在运行程序(系统或虚拟机)时使用绝对路径或变量作为参数传递 我有两个问题: 1) 如何通过属性设置log4j以将日志文件放置在所述文件夹中? 2) 您通常在哪里查看日志文件 我当前的log4j配置:Java 为web项目设置log4j输出文件:目标文件夹存在问题,java,logging,log4j,Java,Logging,Log4j,我正在尝试设置log4j,我希望输出文件放在我的项目中,特别是放在src/main/resources/logs文件夹中,因为我正处于开发阶段,我更喜欢让它在IDE中立即可见。 我的问题是,我不想在运行程序(系统或虚拟机)时使用绝对路径或变量作为参数传递 我有两个问题: 1) 如何通过属性设置log4j以将日志文件放置在所述文件夹中? 2) 您通常在哪里查看日志文件 我当前的log4j配置: log4j.debug=true log4j.rootLogger=debug, stdout, FI
log4j.debug=true
log4j.rootLogger=debug, stdout, FILE
log4j.appender.FILE = org.apache.log4j.FileAppender
log4j.appender.FILE.File = ${classpath}:\\logs\\log_1.txt
log4j.appender.FILE.ImmediateFlush = true
log4j.appender.FILE.Threshold = debug
log4j.appender.FILE.Append = false
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=application.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
1) 在项目构建为war之后,src/main/resources将不存在。位于src/main/resource中的文件(由maven)打包到war文件的WEB-INF/classes目录中。src/main/resources用于需要位于应用程序类路径中的项目资源文件(例如log4j.properties、ini配置文件)。应用程序类路径通常无法通过操作系统的文件系统访问
2) 日志文件通常进入servlet容器的日志目录。例如,在tomcat中,它们使用$CATALINA_HOME/logs。下一个选择是操作系统日志目录。例如在linux中,/var/log/tomcat7我理解这一点。我又添加了一条信息:我正处于开发阶段,因此我希望有一种简单的方法来访问日志。没有一种可移植的方法可以按照您的要求执行,因为servlet容器不知道您的项目的位置。因为您正在开发中,所以绝对或相对路径(可以从环境变量中检索)是可以接受的,并且可能是唯一的选项。