Ich versuche, eine Anwendung zu erstellen, die log4j verwendet, um Protokolldateien zu erstellen. Der Speicherort der Protokolldatei wird durch log4j.properties Datei bereitgestellt.Spark: Separate Spark-Protokolle von benutzerdefinierten Protokollen
Bisher funktioniert es gut, aber ich möchte die Spark-Protokolle von den Protokollen, die ich aus meinem Code generieren, trennen. Oder zumindest meine Log-Nachrichten in der Log-Datei ausdrucken.
Gibt es eine Möglichkeit, das zu tun?
log4j.properties
# Root logger option
log4j.rootLogger=INFO, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Redirect log messages to a log file
log4j.appender.file=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.file.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.rollingPolicy.fileNamePattern=../log/abc%d{yyyyMMdd_HHmmss}.log
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.maxFileSize=5000000
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Um die Funkenprotokollierung einfach zu verbergen, können Sie den Logger für org.apache.spark auf eine hohe Ebene in Ihrer log4j-Konfiguration setzen. zB FEHLER. Oder Sie könnten einen anderen Log-Appender definieren, der an einen anderen Ort ausgibt und diesen org.apache.spark zuweist –
@ASpotySpot Ich habe die Konfigurationsdatei für log4j in der Frage hinzugefügt. Könnten Sie mir vorschlagen, wie ich eine andere Protokolldatei für die Funkenprotokolle definieren kann? – Amber
verwendest du das Einreichen eines Funkenjobs auf Garncluster. Wenn ja kannst du bitte die Befehle angeben, die du benutzt hast, während der Funke einreicht. –