第26章 日志与调试

26.1. 日志
26.1.1. 获取Logger
26.1.1.1. 传统
26.1.1.2. 注入
26.1.2. 配置日志
26.1.3. 记录日志
26.2. 调试
26.2.1. 远程调试
26.2.2. 调试JS脚本
26.2.3. 调试CSS样式

26.1. 日志

在应用程序中添加日志记录除了可以监视系统的运行情况,周期性的记录到文件供以后进行统计分析工作外,还可以在开发过程中担当调试器的作用,向控制台或文件输出调试信息。

26.1.1. 获取Logger

在Java中使用日志记录首先要获取一个具体的Logger。这个Logger可以是jdk自带的java.util.logging包下面的Logger。也可以是第三方jar包提供的Logger,例如log4j。

获取的方式有两种,分别是传统方式和注入的方式。

26.1.1.1. 传统

传统方式下获得日志记录器的方式是使用getLogger 工厂方法来获得 Logger 对象。

如果使用的Logger是log4j提供的,则需要在工程中导入log4j的相关jar包后才可以使用:

static Logger log = Logger.getLogger(YourClass.class.getSimpleName());

接着就可以用这个记录器进行日志记录,例如:

log.info("INFO TEST!");

需要注意的是不同的Logger会有不同的记录方法,具体可参见jdk的api文档和log4j的api文档。

26.1.1.2. 注入

目前通过注入的方式获取日志记录器的只支持jdk自带的Logger,使用方式如下:

@Inject 
private Logger log;

26.1.2. 配置日志

在log4j的支持下使用配置文件非常方便。我们可以在配置文件里设置记录器的级别、日志信息输送的目的地以及日志的输出格式。下面列出一个简单的配置文件:

  # 定义两个Logger分别为stdout和file
  log4j.rootLogger=debug, stdout, file

  # 设置stdout Logger的日志输出目的地为控制台
  log4j.appender.stdout=org.apache.log4j.ConsoleAppender

  # 设置stdout Logger的日志输出格式
  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

  # 设置file Logger的日志输出目的地为回滚文件
  log4j.appender.file=org.apache.log4j.RollingFileAppender
  log4j.appender.file.File=D://example.log
  log4j.appender.file.MaxFileSize=100KB
  log4j.appender.file.MaxBackupIndex=1
  log4j.appender.file.layout=org.apache.log4j.PatternLayout
  log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n 
      

26.1.3. 记录日志

日志信息通常输出到控制台和文件这两个地方。以log4j为例,在配置文件中加入这句:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

表示名为stdout的日志记录器的日志默认输出为控制台。

在配置文件中加入这句:

log4j.appender.file=org.apache.log4j.RollingFileAppender

表示名为file的日志记录器的日志默认输出为文件。