如何创建自定义 logger 格式化?

来源:互联网 发布:域名注册机构有哪些 编辑:程序博客网 时间:2024/05/16 05:11
要创建一个自定义的 Formatter 我们需要继承 java.util.logging.Formatter 抽象类并实现 format(LogRecord) 方法。在该方法中我们可以对保存在 LogRecord 中的 log 消息进行格式化以满足我们的需要。
此外,java.util.logging.Formatter 类还有 getHead(Handler) 和 getTail(Handler) 两个方法,通过对它们进行重写,我们可以添加一个头和尾到我们的 log 消息中。
package org.kodejava.example.util.logging;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.logging.*;public class LogCustomFormatter {    public static void main(String[] args) {        Logger logger = Logger.getLogger(LogCustomFormatter.class.getName());        logger.setUseParentHandlers(false);        MyFormatter formatter = new MyFormatter();        ConsoleHandler handler = new ConsoleHandler();        handler.setFormatter(formatter);        logger.addHandler(handler);        logger.info("Example of creating custom formatter.");        logger.warning("A warning message.");        logger.severe("A severe message.");    }}class MyFormatter extends Formatter {    // Create a DateFormat to format the logger timestamp.    private static final DateFormat df = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");    public String format(LogRecord record) {        StringBuilder builder = new StringBuilder(1000);        builder.append(df.format(new Date(record.getMillis()))).append(" - ");        builder.append("[").append(record.getSourceClassName()).append(".");        builder.append(record.getSourceMethodName()).append("] - ");        builder.append("[").append(record.getLevel()).append("] - ");        builder.append(formatMessage(record));        builder.append("\n");        return builder.toString();    }    public String getHead(Handler h) {        return super.getHead(h);    }    public String getTail(Handler h) {        return super.getTail(h);    }}
以下为上述自定义格式所产生的一个输出:
01/05/2009 06:22:09.372 - [org.kodejava.example.util.logging.LogCustomFormatter.main] - [INFO] - Example of creating custom formatter.
01/05/2009 06:22:09.374 - [org.kodejava.example.util.logging.LogCustomFormatter.main] - [WARNING] - A warning message.
01/05/2009 06:22:09.374 - [org.kodejava.example.util.logging.LogCustomFormatter.main] - [SEVERE] - A severe message.

原文链接:How do I create a custom logger Formatter?,发布日期:2017 年 2 月 13 日。
作者简介
Wayan Saryada
Wayan Saryada 是一名程序员、跑步爱好者、潜水爱好者,目前居住在印尼的巴厘岛。主要使用 Java 编程,利用 Spring 框架、Hibernate / JPA 等构建基于 Web 的应用。
1 0
原创粉丝点击