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

xiaoxiao2021-02-28  99

要创建一个自定义的 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 是一名程序员、跑步爱好者、潜水爱好者,目前居住在印尼的巴厘岛。主要使用 Java 编程,利用 Spring 框架、Hibernate / JPA 等构建基于 Web 的应用。
转载请注明原文地址: https://www.6miu.com/read-17455.html

最新回复(0)