日志 - noonecare/spark GitHub Wiki

重点是理解概念,利用应用场景

继承

  • log4j.rootLogger: 配置文件 log4j.properties log4j.rootLogger 属性值
  • log4j.appender.: 写日志的实现者, 一般主要配置的就是 Appender
  • log4j.additivity.: 当前 logger 是否继承 parent logger 的 appender, 如果设为 true 会继承,如果设为 false 不继承。
  • logger 的名为 a.b.c.d, a.b.c.d logger 的父亲 logger 为 a.b.c ,a.b.c 的父亲 logger 为 a.b .. a 的父亲 logger 为 log4j.properties.rootLogger 的值。这就是 log4j 的继承关系。

FAQ

  • 读取日志的配置文件
InputStream in = HelloWorld.class.getClassLoader().getResourceAsStream("log4j.properties");
PropertyConfigurator.configure(in);

Appender

  • 日志记在哪里
  • log4j.appender.{loggerName}.File
  • 日志记录信息的级别
  • log4j.appender.{loggerName}.Threshold
  • 记录多个日志
  • 你可以在代码中使用 多个 Logger。
  • 记录日志的格式
  • 日志的格式,重要的信息有: 时间,发生异常时的 traceback 信息,出错是在源码的第几行第几列。
  • 如果是分布式的引用,如何记录日志。比如运行一个服务器,利用反向代理,使得服务运行在多台主机上,如何记录日志。
  • 日志文件长了,如何分割,备份
⚠️ **GitHub.com Fallback** ⚠️