【问题标题】:log4j relative path to create log filelog4j 创建日志文件的相对路径
【发布时间】:2013-10-17 07:09:03
【问题描述】:

这是我的 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 那样做。 这里怎么实现??

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的场景(src 之外的日志文件夹)。

标签: logging log4j


【解决方案1】:

你可以像这样传递动态值

{logfileLoc}/logs/file.log.

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

【讨论】:

  • 这在 xml 配置文件中不起作用吗?而是创建一个新文件夹 {logfileLoc} ..
【解决方案2】:

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

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

相对于当前工作目录,它运行良好

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多