【问题标题】:How to get Log4j log file absolute path in Java?如何在 Java 中获取 Log4j 日志文件的绝对路径?
【发布时间】:2023-03-04 09:31:01
【问题描述】:

我正在使用 Log4j 来记录 Log4j.xml 文件中提供的日志文件路径。 Web 应用程序将部署在 weblogic 服务器上,并且在 home/JEE/servername/logs 目录下生成日志文件。使用java如何在Java中获取这个“../../logs/cast-arm.log”绝对路径?

log4j.xml (src\main\resources\log4j.xml)

<appender name="armFile" class="org.apache.log4j.RollingFileAppender">
    <param name="append" value="true" />
    <param name="maxFileSize" value="10MB" />
    <param name="maxBackupIndex" value="100" />
    <param name="file" value="../../logs/cast-arm.log" />
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern"  value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n  %-5p %m%n"/>
    </layout>
</appender>

Java:

File file = new File("../../logs");

【问题讨论】:

  • 你知道java中这个路径../../logs还是需要用程序找到的
  • 亲爱的 ravi,以防万一您是同时对我的 10 个高度评价的答案投了反对票的人,我建议您应该删除一个在两次编辑后仍然是错误的答案:谢谢这样的绅士。现在感觉好些了吗?我建议你长大了,学会接受建设性的批评。我花时间详细解释了您的答案有什么不正确之处。我不是故意侮辱你的。我什至有礼貌,只是诚实。
  • 顺便说一下,StackOverflow 更正了投票,因为它们是 detected as abusive serial voting 自动。如果您在这里稍作回复就为滥用行为道歉,我准备删除此评论和之前的评论。

标签: java file log4j


【解决方案1】:

有几种方法可以获得这个绝对文件路径

  1. 使用user.dir 属性(如果你知道相对路径

    File userDir = new File(System.getProperty("user.dir"));
    
    File logFile= new File(userDir , "../../logs/cast-arm.log");
    
    System.out.println(logFile.getAbsolutePath());
    
  2. 使用FileAppender

    FileAppender fileAppender = (FileAppender) logger.getRootLogger().getAppender("armFile");
    System.out.println(new File(fileAppender.getFile()).getAbsolutePath());
    

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2013-06-24
    • 1970-01-01
    • 2014-07-03
    • 2010-09-08
    相关资源
    最近更新 更多