如何在Java中获取Log4j日志文件的绝对路径?

时间:2017-03-08 14:46:30

标签: java file log4j

我正在使用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>

爪哇:

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

1 个答案:

答案 0 :(得分:0)

有两种方法可以获得此绝对文件路径

  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());
    
  3. 希望这有帮助。