本文主要介绍 IBM ">SmartCloud Entry 的日志,包含采用的日志框架、日志的结构以及日志的分析,帮助用户在使用 SmartCloud Entry 的过程中在出现问题的情况下,快速的定位。
现在流行的日志框架有很多,例如 Log4J、SLF4J、Apache Common-Logging 等,每种框架使用、配置的方式又不尽相同,在 SmartCloud Entry 中,我们使用 JDK 自带的日志工具来形成系统的日志。
我们通过 java.util.logging.Logger.getLogger(String name) 来获得一个命名的 logger, 之后我们就可以分别调用各自的方法来输出 log。
日志的级别逐级为 OFF、SEVERE、WARNING、INFO、FINE、FINER、FINEST、ALL,随着级别的升高,日志的信息也随着增多。
清单 1. 如何输出日志
import java.util.logging.Logger Logger logger = Logger.getLogger(“wpf-test”); logger.fine(“this is a fine message”);
日志的配置
SmaryCloud Entry 默认的日志配置通过配置文件提供,配置文件 log.properies 位于安装后的配置目录内,默认的配置如下:
清单 2. 日志默认配置
# This is the main logging.properties for the CFS API application handlers=java.util.logging.
ConsoleHandler, java.util.logging.FileHandler # Default global logging level. .level=FINE # Default global logging level for the console handler. java.util.logging.ConsoleHandler.level=INFO java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter java.util.logging.FileHandler.pattern=%h/.skc/logs/skc-%g.log java.util.logging.FileHandler.count=9 java.util.logging.FileHandler.limit=50000000 java.util.logging.FileHandler.append=true
其中默认的日志级别为 FINE,但如果我们需要分析一些问题的时候,往往需要提供更详细的日志,这时可以通过调整输出到文件的日志级别达到,方法如下:
java.util.logging.FileHandler.level=FINEST
从其他的配置项,我们可以看到系统默认把日志存储在用户目录内的的 /.skc/logs 下,同时每个日志文件最大为 50M,最多为 9 个日志文件,日志文件的命名方式为 skc 与数字的组合,skc-0.log 为最新的日志文件,例如
图 1. 日志文件列表