日志 - 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 的继承关系。
- 读取日志的配置文件
InputStream in = HelloWorld.class.getClassLoader().getResourceAsStream("log4j.properties");
PropertyConfigurator.configure(in);
Appender
- 日志记在哪里
- log4j.appender.{loggerName}.File
- 日志记录信息的级别
- log4j.appender.{loggerName}.Threshold
- 记录多个日志
- 你可以在代码中使用 多个 Logger。
- 记录日志的格式
- 日志的格式,重要的信息有: 时间,发生异常时的 traceback 信息,出错是在源码的第几行第几列。
- 如果是分布式的引用,如何记录日志。比如运行一个服务器,利用反向代理,使得服务运行在多台主机上,如何记录日志。
- 日志文件长了,如何分割,备份