在spring mvc project中的项目日志文件夹中找不到日志文件

时间:2015-06-23 07:19:59

标签: java log4j logfile

我在我的spring mvc项目中使用log4j,并在下面创建日志文件uing log4j.properties。

# Root logger option
log4j.rootLogger= INFO, info, file, stdout, error

# Direct log messages to a log file [INFO]
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File=.logs\\mylog.log
log4j.appender.info.Threshold=INFO
log4j.appender.info.MaxFileSize=1Kb
log4j.appender.info.MaxBackupIndex=10
log4j.appender.info.DatePattern='.'yyyy-MM-dd
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

我希望它存储在我的Web应用程序的myapp / logs文件夹中。我应该为文件做什么。

这是目录enter image description here

2 个答案:

答案 0 :(得分:2)

现在它将保存在IDE的当前工作目录中(我猜是Eclipse或STS)。将文件放在项目结构中并不是一个好主意,因为在将应用程序部署到任何地方后,该结构将不存在。

在Spring中,您可以在web.xml中定义一个属性,以创建位置变量:

<context-param>
  <param-name>webAppRootKey</param-name>
  <param-value>mywebapp.root</param-value>
</context-param>

然后在配置中添加一个变量:

log4j.appender.info.File=${mywebapp.root}/logs/mylog.log

如果您必须将其存储在应用程序中,您还可以通过使用&#34; programmatically来确定ServletContext.getRealPath("."),以找出部署应用的位置,然后设置文件的路径。

答案 1 :(得分:0)

在正常情况下,web-app会检查类路径根目录下的日志文件。要从自定义位置加载文件,请查看以下帖子

Change location of log4j.properties

How to use custom file instead of log4j.properties

编辑:

从op的注释中,在项目路径中生成日志文件,放置日志目录。你可以简单地指定为,

log4j.appender.file.File= logs/mylog.log