2016-04-06 7 views
2

Ich erhalte eine extra leere Datei, wenn ich versuche, meine Logs von log4j2 zu bekommen. Der Dateiname lautet „$ (sys“ und es enthält nichts absolut, aber es wird jedes Mal, wenn ich mein Programm laufen hier ist meine Java-Datei erstellt, wo ich log:Android: Extra leere Datei beim Erstellen von Logs mit log4j2 erhalten

public static void main(String[] args){ 

    Logger logger = LogManager.getLogger(); 

    final Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(System.currentTimeMillis()); 
    Date date = cal.getTime(); 
    int mHour = date.getHours(); 
    int mMinute = date.getMinutes(); 

    String filenameWE = String.valueOf(mHour) + "_" + String.valueOf(mMinute)+"_WarErr"; 
    String filenameFull = String.valueOf(mHour) + "_" + String.valueOf(mMinute)+"_Full_Log"; 

    System.setProperty("WarErrFilename", filenameWE); 
    System.setProperty("FullLogFilename", filenameFull); 

    LoggerContext ctx = (LoggerContext) LogManager.getContext(false); 
    ctx.reconfigure(); 

    logger.debug("Hello world - debug log"); 
    logger.debug("Hello world - debug log"); 
    logger.debug("Hello world - debug log"); 
    logger.info("Hello world - info log"); 
    logger.info("Hello world - info log"); 
    logger.info("Hello world - info log"); 

    logger.warn("Hello world - warn log");   
    logger.warn("I farted!"); 
    logger.error("Hello world - error log"); 
    logger.error("Error please insert brain!"); 
    logger.error("Error cant poop!"); 
} 

Und mein log4j2.xml

<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO"> 
<Appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
    </Console> 

    <File name="MyFile" fileName="logs/${date:yyyy}/${date:MM}/${date:dd}/${sys:WarErrFilename}.log" immediateFlush="false" append="false"> 
     <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" /> 
     <Filters> 
      <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="NEUTRAL" /> 
      <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="NEUTRAL" /> 
      <ThresholdFilter level="info" onMatch="DENY" onMismatch="DENY" /> 
     </Filters> 
    </File> 
    <File name="Technical" 
      fileName="logs/${date:yyyy}/${date:MM}/${date:dd}/${sys:FullLogFilename}.log"> 
     <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" /> 
    </File> 
</Appenders> 

<Loggers> 
    <Root level="debug"> 
     <AppenderRef ref="Console" /> 
     <AppenderRef ref="MyFile"/> 
     <AppenderRef ref="Technical"/> 
    </Root> 
</Loggers> 
</Configuration> 
+0

Sind beide (MyFile & Technical) Logdateien vorhanden? Dies würde helfen, Ihren Fehler einzugrenzen. – StaticBR

+0

Ja, die 2 Dateien existieren. Entschuldigung für die späte Antwort – user6006748

Antwort

2

Ihre Config fehlt das äußere <Configuration> Element, das Ihre <Appenders> und <Loggers> müssen verschachtelt werden. in das Handbuch für ein Beispiel Werfen Sie einen Blick.

auch, warum nicht die Systemeigenschaften festlegen, bevor der Logger vom LogManage bekommen r?

+0

Wenn Sie sich den Code, den ich zur Verfügung gestellt habe, genauer ansehen, ist das '' Element dort – user6006748

+0

Oh ich verstehe. Auf meinem Handy ist es hinter dem Element versteckt. Aber ich sehe kein schließendes Tag ... –

+0

es ist da, ich muss es nur bearbeiten, sonst wird es nicht kompilieren und irgendein Ergebnis produzieren, oder? :) Ich werde es in Sekunden beheben. – user6006748