java 自定义日志_java.util.logging.Logger之自定义日志格式

关键字:自定义日志格式

如果我们需要自定义自己格式的日志文件时,需要我们自己创建一个类去继承java.util.logging.Formatter类,并重写里面的format(LogRecord arg0)方法,并且该方法中就是我们自定义输出的格式内容

使用自定义的日志格式,可以在后续的框架学习中,用来输出html格式的测试报告。

以下是我们自定义的日志格式:

package com.example.my;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.logging.Formatter;

import java.util.logging.Handler;

import java.util.logging.LogRecord;

import java.util.logging.Logger;

/**

* 继承Formatter来自定义自己的日志格式

* @author liu

*

*/

public class MyFormatter extends Formatter {

@Override

public String format(LogRecord arg0) {

// TODO Auto-generated method stub

//创建StringBuilder对象来存放后续需要打印的日志内容

StringBuilder builder = new StringBuilder();

//获取时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");

Date now = new Date();

String dateStr = sdf.format(now);

builder.append(dateStr);

builder.append(" - ");

//拼接日志级别

builder.append(arg0.getLevel()).append(" - ");

//拼接方法名

builder.append(arg0.getSourceMethodName()).append(" - ");

//拼接日志内容

builder.append(arg0.getMessage());

//日志换行

builder.append("\r\n");

return builder.toString();

}

@Override

public String getHead(Handler h) {

// TODO Auto-generated method stub

return "此处为日志的头部信息\r\n";

}

@Override

public String getTail(Handler h) {

// TODO Auto-generated method stub

return "此处为日志的尾部信息\r\n";

}

}

测试该自定义日志格式的代码:

package com.example.my;

import java.io.File;

import java.io.IOException;

import java.util.logging.FileHandler;

import java.util.logging.Logger;

public class LoggerMain {

public static void main(String[] args) throws SecurityException, IOException {

// TODO Auto-generated method stub

//创建一个Logger对象:注意该对象的名称必须与getLogger()方法中的名称保持一致

Logger myLogger = Logger.getLogger("myLogger");

//如果需要将日志文件写到文件系统中,需要创建一个FileHandler对象

FileHandler fileHandler = new FileHandler("d:" + File.separator + "java" + File.separator + "logger1.log");

//追加写入日志文件

//FileHandler fileHandler = new FileHandler("d:" + File.separator + "java" + File.separator + "logger.log" , true);

//创建日志格式文件:本次采用自定义的Formatter

fileHandler.setFormatter(new MyFormatter());

//将FileHandler对象添加到Logger对象中

myLogger.addHandler(fileHandler);

myLogger.severe("这是SERVER类型的日志:严重");

myLogger.warning("这是一个WARN类型的日志文件:警告");

myLogger.info("这个是INFO类型的日志:信息");

myLogger.config("这是一个CONFIG类型的日志:配置");

}

}

测试代码输出的测试结果如下:

e3c09c68242c

clipboard.png

延申阅读:

1:关于日志级别:(说明在设置日志级别之后,如果设置的INFO级别,则会打印SERVER&WAERNINNG&INFO;如果设置的是WARNING,则会输出SERVER&WAERNINNG)

日志级别

序号

内容

SEVERE

严重

WARNING

警告

INFO

信息

CONFIG

配置

FINE

良好

FINER

较好

FINEST

最好

ALL

开启所有级别日志记录

OFF

关闭所有级别日志记录

2:关于JAVA代码中的日志级别的设置

在JDK中实际上是有默认的日志级别的:在配置文件:%JAVA_HOME%\jre\lib\logging.properties中;如果JAVA设置的级别比配置文件中配置的还要低,则以配置文件中配置的为准,如果比配置文件中的高,则以程序中配置的为准。

e3c09c68242c

clipboard.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值