0

In meinem Notizbuch, ich habe Setup ein Dienstprogramm für die Protokollierung so dass ich debug DSX scheduled notebooks:Wie logge ich mich in den kernel-pyspark ein - *. Log von einem geplanten Notebook?

# utility method for logging 
log4jLogger = sc._jvm.org.apache.log4j 
LOGGER = log4jLogger.LogManager.getLogger("CloudantRecommender") 

def info(*args): 

    # sends output to notebook 
    print(args) 

    # sends output to kernel log file 
    LOGGER.info(args) 

es wie so verwenden:

info("some log output") 

Wenn ich die Log-Dateien überprüfen kann ich meine Abmeldung zu sehen ist geschrieben zu werden:

! grep 'CloudantRecommender' $HOME/logs/notebook/*pyspark* 

kernel-pyspark-20170105_164844.log:17/01/05 10:49:08 INFO CloudantRecommender: [Starting load from Cloudant: , 2017-01-05 10:49:08] 
kernel-pyspark-20170105_164844.log:17/01/05 10:53:21 INFO CloudantRecommender: [Finished load from Cloudant: , 2017-01-05 10:53:21] 

jedoch, wenn das Notebook läuft als geplant Job Logausgabe scheint nicht an den Kernel-pyspark gehen zu werden - * log fil. e.

Wie kann ich Log-Ausgabe in DSX geplanten Notebooks für Debugging-Zwecke schreiben?

Antwort

1

Der Protokollierungscode funktioniert tatsächlich in Ordnung. Das Problem war, dass der Zeitplan auf eine ältere Version des Notebooks zeigte, in der keine Logging-Anweisungen enthalten waren!

Verwandte Themen