2017-03-08 3 views
0

Ich verwende Log4j zum Protokollieren und Protokollieren des Dateipfads in der Datei Log4j.xml. Die Webanwendung wird auf dem Weblogic-Server bereitgestellt und die Protokolldatei wird unter dem Verzeichnis home/JEE/Servername/logs generiert. Java verwenden, um den absoluten Pfad "../../logs/cast-arm.log" in Java zu erhalten?Wie Log4j Log-Datei absoluter Pfad in Java erhalten?

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"); 
+0

Kennen Sie diesen Pfad ../../logs in Java oder muss auch mit dem Programm gefunden werden – Sanjeev

+0

Lieber ravi, nur für den Fall, dass Sie derjenige sind, der 10 meiner hoch bewerteten Antworten ungefähr zur gleichen Zeit heruntergab Ich schlug vor, dass Sie eine Antwort löschen sollten, die nach zwei Änderungen immer noch falsch war: Danke, dass Sie so ein Gentleman sind. Fühlst du dich jetzt besser? Ich schlage vor, Sie wachsen auf und lernen, konstruktive Kritik zu akzeptieren. Ich habe mir die Zeit genommen, im Detail zu erklären, was an Ihrer Antwort falsch war. Ich wollte dich nicht beleidigen. Ich war sogar höflich, nur ehrlich. – kriegaex

+0

StackOverflow korrigierte übrigens die Stimmen, weil sie automatisch als anstößige Serienwahl erkannt wurden (http://stackoverflow.com/help/serial-voting-reversed). Wenn Sie sich für den Missbrauch in einer kleinen Antwort hier entschuldigen, bin ich bereit, dies und den vorherigen Kommentar danach zu löschen. – kriegaex

Antwort

0

Es gibt einige Möglichkeiten, wie Sie diesen absoluten Dateipfad

bekommen
  1. Verwenden user.dir Eigenschaft (Wenn Sie den relativen Pfad kennen)

    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()); 
    

Hoffnung Mit diesem hilft.