日志¶
Logger API 的使用¶
取得Logger对象¶
function add(value1, value2) { // 取得Logger对象 // 未指定Logger名,以文件名作为Logger名。 // 文件配置位置 : <CONTEXT_PATH>/WEB-INF/jssp/src/foo/bar/logger_sample.js // Logger名 : 'foo.bar.logger_sample' var logger = Logger.getLogger(); }使用Logger.getLogger方法(),取得Logger对象。以传给参数的字符串作为Logger名。没有向参数传递任何值时,根据调用该方法的JS文件的源代码路径进行创建。具体来说,就是把 JS 文件的源代码路径的文件名分隔符替换为“.”,并将该字符串作为Logger名。JS 文件的源代码路径是指源代码检索目录的相对路径(不含扩展名)。
输出日志¶
function add(value1, value2) { // 取得Logger对象 // 未指定Logger名,将文件名作为Logger名使用。 // 文件配置位置 : <CONTEXT_PATH>/WEB-INF/jssp/src/foo/bar/logger_sample.js // Logger名 : 'foo.bar.logger_sample' var logger = Logger.getLogger(); logger.debug('arguments=[{}, {}]', value1, value2); var result = value1 + value2; logger.trace('result={}', result); return result; }使用 Logger 对象输出日志。在上述函数中,传给参数的值为debug级别,计算结果使用trace级别进行输出。日志级别为debug,执行add(1, 2)时,输出以下内容。[DEBUG] f.b.logger_sample - arguments=[1, 2]日志级别为trace,执行add(1, 2)时,输出以下内容。[DEBUG] f.b.logger_sample - arguments=[1, 2] [TRACE] f.b.logger_sample - result=3
使用 LoggerMDC API¶
MDC¶
通过使用 Mapped Diagnostic Context(映射化诊断上下文),可以在日志中输出用日志配置文件的布局设置中独自定义的key保存的信息。使用 LoggerMDC API,可以将消息写入独自定义的key中。
使用 MDC 进行日志输出¶
// 定义 MDC 的主键 var MDC_FUNC_KEY = 'application.func'; function add(value1, value2) { // 取得Logger对象 // 未指定Logger名,将文件名作为Logger名使用。 // 文件配置位置 : <CONTEXT_PATH>/WEB-INF/jssp/src/foo/bar/logger_sample.js // Logger名 : 'foo.bar.logger_sample' var logger = Logger.getLogger(); // 在 MDC 中设置值 LoggerMDC.put(MDC_FUNC_KEY, 'add'); logger.debug('arguments=[{}, {}]', value1, value2); var result = value1 + value2; logger.trace('result={}', result); // 对 MDC 的值进行初始化 LoggerMDC.remove(MDC_FUNC_KEY); return result; }在 MDC 中设置了正在执行的函数名。利用 LoggerMDC.put(key, value)方法,在 MDC 的 “application.func” 主键中设置了正在执行的函数名 “add” 。如果不特意对MDC中保存的内容进行初始化,则值不被初始化。因此,在执行完目标日志输出处理后,通过 LoggerMDC.remove(key) 方法对 MDC 的 “application.func” 主键值进行初始化。输出示例对 <CONTEXT_PATH>/WEB-INF/conf/log/im_logger.xml 的 <configuration>/<appender name=”STDOUT”>/<encoder>/<pattern> 内容进行如下修改后,重新启动应用程序服务器。[%level] %logger{10} - %X{application.func} %msg%n通过日志级别 trace 执行 add(1, 2) 时输出的日志[DEBUG] f.b.logger_sample - add arguments=[1, 2] [TRACE] f.b.logger_sample - add result=3