1

这是我的 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

所以我的日志文件夹在 log4j.properties 所在的 src 文件夹之外?

在这种情况下如何定义相对路径。在 jsp 的情况下,我们像../webpages/page.jsp. 怎么能在这里实现?

4

3 回答 3

3

你可以像这样传递动态值

{logfileLoc}/logs/file.log.

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

于 2013-10-17T07:20:21.477 回答
2

我遇到了同样的问题,我只是更改了以下行

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

并且相对于当前工作目录运行良好

于 2020-01-24T09:48:14.757 回答
0

在带有 Tomcat 和 webapps 的 Linux 上,这可以工作:

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

在里面/your/tomcat/webapps/your_app.war/WEB-INF/classes/log4j.properties

并将日志文件放在/your/tomcat/logs/文件夹中。

PS 正如我最近发现的那样,在这种情况下使用相对路径并不是一个好主意。因为你可以从不同的文件夹运行tomcat,而不仅仅是tomcat_home/bin/ 所以,最好的答案是Piaget Hadzizi

于 2021-11-12T10:55:36.570 回答