2017-01-30 3 views
0

ich einfaches Programm haben & in Java das benutzerdefinierte Protokoll mit log4j.xmlGeneate Individuelle log log4j.xml

Ich erhalte die unten Ausgang mit dem genannten Code unten generieren möchten.

2017-01-30 23:23:03 DEBUG Log4jXmlConfigurationExample:13 - Log4j appender configuration is successful !! 
2017-01-30 23:23:03 INFO Log4jXmlConfigurationExample:15 - Info message ---------- > 
2017-01-30 23:23:03 ERROR Log4jXmlConfigurationExample:17 - Error message ------> 

Hier bekomme ich 4-Säule wie "Datetime" "LogType" "JavafileName" "Message"

Jetzt habe ich die fünfte Spalte wie userId wollen. So erwarte ich, dass die Ausgabedatei 5 Spalt als „Datetime“ hat „LogType“ „JavafileName“ „Message“ „Counter“

Könnte hier jemand helfen, wie kann ich die benutzerdefinierten Änderungen in log4j.xml machen

Ja ofcourse wird Zähler dynamisch generiert werden und in einfachen Java-Programm

log4.xml

<appender name="file" class="org.apache.log4j.RollingFileAppender"> 
    <param name="append" value="false" /> 
    <param name="maxFileSize" value="10MB" /> 
    <param name="maxBackupIndex" value="10" /> 
    <param name="file" value="C:/Users/ADMIN/Desktop/Logs/my_logs.log" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" 
     value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
    </layout> 
</appender> 

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="console" /> 
    <appender-ref ref="file" /> 
</root> 

Java-Code

public static int counter =1; 
public static void main(String[] args) { 
    DOMConfigurator.configure("log4j-config.xml"); 
    counter++; 
    logger.debug("Log4j appender configuration is successful !!"); 
    counter++;  
    logger.info("Info message ---------- >");  
    counter++; 
    logger.error("Error message ------>"); 
} 
bekommen

Antwort

0

Die verwendeten Variablen (z.B. % d) sind in der Umwandlung Muster aufgeführt: https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html Ich sehe keine Benutzer-ID

+0

Nein, ich sage nicht, ich möchte UserID als Standard-Parameter drucken .. Ich wollte nur einen Parameter drucken, die dynamisch generiert werden würde im Java-Programm. Nehmen Sie ein Beispiel für den Zähler Ich habe die Frage mit Zählercode aktualisiert. –

+0

Dann geben Sie den Wert als logger.debug aus ("counter =" + counter); – Dakoda

+0

Aber ich möchte es als separate Spalte in einer erstellten Protokolldatei. Nicht mit einer Kombination von Nachrichten. –