log4j创建日志文件的相对路径

1aaf6o9v  于 2022-11-06  发布在  其他
关注(0)|答案(3)|浏览(147)

这是我的log4j.properties文件


# Define the root logger with appender file

log = D:/workspaces/Abhishek/Automation/MOPS/logs
log4j.rootLogger = DEBUG, FILE

# Define the file appender

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{ABSOLUTE} %5p  - %m%n

这对我来说唯一的问题是我用过的绝对路径。我现在想用相对路径。
下面是我的文件夹结构

--src
      --com
      --log4j.properties
--logs
     --log.out file

所以我的日志文件夹在www.example.com所在的src文件夹之外log4j.properties?
在这种情况下,我如何定义相对路径?在jsp的情况下,我们像../webpages/page.jsp一样定义相对路径。在这里如何实现?

gudnpqoy

gudnpqoy1#

您可以像这样传递动态值

{logfileLoc}/logs/file.log.

在您的情况下,您希望在项目文件夹本身中,因此可以使用-D(java参数或等效参数)参数,如-D logfileLoc =D:/workspaces/Abhishek,并且您可以使用变量logfileLoc访问。并考虑针对不同的环境更改此值。

xuo3flqw

xuo3flqw2#

我遇到了同样的问题,我只是简单地更改了下面的行

log4j.appender.file.File=logs\\myLogFile.log

相对于当前工作目录,它工作得很好

xggvc2p6

xggvc2p63#

在使用Tomcat和Web应用程序的Linux上,这是可行的:

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

单位为/your/tomcat/webapps/your_app.war/WEB-INF/classes/log4j.properties
并将日志文件放在/your/tomcat/logs/文件夹中。
P.S.正如我最近发现的,在这种情况下使用相对路径并不是一个好主意。因为您可以从不同的文件夹运行tomcat,而不仅仅是tomcat_home/bin/。所以,Piaget Hadzizi给出了最好的答案

相关问题