我正在尝试构建一个应用程序,它使用log4j来生成日志文件。日志文件的位置通过log4j.properties文件提供。
到目前为止,它工作得很好,但是我想将spark日志与从代码生成的日志分开。或者至少在日志文件中打印我的日志消息。
有什么办法吗?
log4j.属性
# 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
2条答案
按热度按时间llycmphe1#
不幸的是,我不知道如何使用属性文件。我只使用xml配置了log4j。
但是,在xml中,可以将以下内容添加到“标准”配置中:
这定义了一个appender,它将日志输出到一个名为spark.log的文件中。然后使用它:
我希望在文档中查找如何将其转换为使用属性格式“不应该”会太困难。
cl25kdpy2#
您可以很容易地为不同的包定义不同的附加器,这些包要以不同的方式登录或使用不同的方法登录
log4j
附加物。示例
log4j.properties
:快速解释上述文件:
与
sparkappender
附加器log4j
将所有日志记录到文件中log/spark-logs.log
. 包中的类未生成的所有日志org.apache.spark
或者org.apache_project.jetty
登录到控制台。这些包也有不同的日志级别,但相同的log4j appender-sparkappender
在你的例子中,你可以file
日志追加器并定义日志级别和sparkappender
至log4j.logger
就像上面的例子。