# log4j2 Wo liegt mein Logfile?



## TheFrog (21. Jul 2017)

Hallo Java Experten,

ich habe ein kleineres Tool entwickelt, das täglich mittels Cronjob gestartet wird und dann Operationen auf sehr vielen Dateien und Verzeichnissen durchführt. In der Anwendung würde ich gerne log4j einsetzen und Informationen in einer Logdatei speichern.

Mein Problem ist, dass ich nach dem Beenden der Anwendung kein Logfile finden kann.

In Eclipse baue ich die Anwendung mit clean und install. Danach starte ich meine Hauptklase. 

log4j2.properties abgelegt unter [projektordner]/resources

```
# Define the root logger with appender file
log4j.rootLogger = INFO, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=./app.log

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
```


```
package de.mysite.code.logtest;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class App {
   
   static Logger logger = LogManager.getLogger(App.class);
   
   public static void main(String[] args) {
       logger.info("Logging funktioniert :)");
   }
}
```

Die Properties Datei habe ich dem Buildpath hinzugefügt, log4j beziehe ich über Maven.

Bei der Ausführung bekomme ich keinerlei Fehler. Was mache ich da falsch?


----------



## Wurstkopp (23. Jul 2017)

Eventuell suchst du einfach im falschen Verzeichnis nach dem Log? Probier mal einen absoluten Pfad in den Properties anzugeben. Alternativ schau mal in deine Cronjob Verwaltung (Windows Taskplanung o.ä.?) und schau ob du einen Ausführungspfad angeben kannst. Wenn dort z.B. Standardmäßig ein Systempfad drinne steht, kommen die Logs bei einem relativen Pfad auch dort an.


----------



## JStein52 (23. Jul 2017)

Funktioniert dein Testprogramm da oben denn wenn du es direkt aus Eclipse startest ?


----------



## TheFrog (23. Jul 2017)

Ich konnte das Problem nun lösen.

@Wurstkopp das Logfile wurde garnicht erst angelegt xD Ich hatte auf meinem Rechner mit locate nach dem logfile gesucht und nichts gefunden.

@JStein52 Die Anwendung wurde ohne Fehler gestartet, geloggt wurde aber nichts.

Ich habe nun die Datei "log4j2.properties" durch "log4j2.xml" ersetzt, diese hat den Inhalt:


```
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config">
    <Appenders>
        <File name="file" fileName="logfile.log" append="true">
            <PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Logger name="de.mysite.code.logtest.App" level="debug"/>
        <Root level="info">
            <AppenderRef ref="file"/>
        </Root>
    </Loggers>
</Configuration>
```

Die Anwendung erstellt nun das Log und legt es im Verzeichnis meines Jarfiles ab


----------

