2016-07-07 109 views
0

繼這裏的問題是:How do I log from my Python Spark script,我一直在努力獲得:努力讓日誌文件輸出PySpark

a)所有輸出到日誌文件中。 b)由pyspark

對於)我用下面的更改配置文件寫入到日誌文件:

# Set everything to be logged to the console 
log4j.rootCategory=ALL, file 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.target=System.err 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=/home/xxx/spark-1.6.1/logging.log 
log4j.appender.file.MaxFileSize=5000MB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n 

這將產生輸出和現在B)我想補充我自己輸入到從pyspark記錄,但我找不到任何輸出寫入日誌。這裏是我使用的代碼:

import logging 
logger = logging.getLogger('py4j') 
#print(logger.handlers) 
sh = logging.StreamHandler(sys.stdout) 
sh.setLevel(logging.DEBUG) 
logger.addHandler(sh) 
logger.info("TESTING.....") 

我能找到的日誌文件的輸出,但沒有「測試......」我一直在使用現有的記錄流也嘗試過,但這也不管用。

import logging 
logger = logging.getLogger('py4j') 
logger.info("TESTING.....") 

回答

2

作品在我的配置:

log4jLogger = sc._jvm.org.apache.log4j 
LOGGER = log4jLogger.LogManager.getLogger(__name__) 
LOGGER.info("Hello logger...")