所以我正在尝试在我的 scala 代码中设置 log4j。这是我目前所拥有的:
LogHelper.scala
package myPackage
import org.apache.log4j.Logger
trait LogHelper {
val loggerName: String = this.getClass.getName
lazy val logger: Logger = Logger.getLogger(loggerName)
}
我的类(class)
打包我的包
class MyClass extends LogHelper {
...
logger.debug("my message")
...
}
但我真的不知道日志放在哪里,也不知道如何将其打印到文件中。我的代码正在运行我使用 spark-submit 运行的 spark 作业。我如何设置它以同时打印到控制台和日志文件?
最佳答案
引用这篇文章。他们有精确的步骤来登录 Scala。
http://discuss.itversity.com/t/setting-up-log4j/5839 :
第 1 步:使用以下 log4j 依赖项更新 build.sbt
libraryDependencies += "log4j"% "log4j"% "1.2.14"
第二步:在src/main/resources下创建Log4j.properties文件,更新如下:
# Define the root logger with appender file
log = /tmp/log4j
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
SBT run, can be seen in /tmp/log4j/log.out log
第三步:可以在代码中使用如下:
import org.apache.log4j.Logger
object HelloWorld {
val logger = Logger.getLogger(this.getClass.getName)
def main(args: Array[String]): Unit = {
logger.info("Logger : Welcome to log4j")
}
}
如果您想了解更多关于使用 log4j 进行日志记录的信息,我推荐 DZone 上的这篇文章:
关于Scala Log4j 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045851/