编写Java程序是实现日志的方式有很多,而作为Java自带的日志,java.util.logging.Logger的使用在某种程度上比其他几种要方便一些。今天就讲一下怎么初步的去使用logger。
简单的日志记录
首先要获取一个Logger对象,这个对象是通过Java自带的一个静态方法public static getLogger(String name)获得,参数name是日志的名字。
Logger logger=Logger.getLogger("日志");
然后输出日志,输出日志可以通过log方法来实现,而java中log方法也有许多的重载,其中一种具有两个参数的是log(Level level,String msg)。两个参数level和msg分别是这条日志的级别以及要记录的信息。
logger.log(Level.INFO,"1");
完整代码:
public static void main(String[] args) {
//获取日志记录器对象
Logger logger=Logger.getLogger("日志");
//日志记录
logger.log(Level.INFO,"info");
}
}
输出结果:
在日志里显示了日志记录的时间,所在包名,类名,函数名以及日志信息。
日志级别
在前面记录日志的时候有提到日志的级别,实际上Logger的级别有:
SEVERE | 严重 |
---|---|
WARNING | 警告 |
INFO | 信息 |
CONFIG | 配置 |
FINE | 良好 |
FINER | 较好 |
FINEST | 最好 |
而除了7个级别外,Logger还有两个特殊的“开关”:ALL和OFF
ALL是开启所有级别的日志
OFF是关闭所有级别的日志
在记录日志是选择其中一个级别即可。
Logger默认的级别是INFO,即一帮情况下INFO更低的日志将不显示。
public static void main(String[] args) {
//获取日志记录器对象
Logger logger=Logger.getLogger("日志");
//日志记录
logger.log(Level.SEVERE,"sever");
logger.log(Level.WARNING, "warnning");
logger.log(Level.INFO,"info");
logger.log(Level.CONFIG,"config");
logger.log(Level.FINE, "fine");
logger.log(Level.FINER, "finer");
logger.log(Level.FINEST, "finest");
}
输出结果:
在这里,就只有前三种级别的日志输出
但是日志的级别是可以是可以自己配置的,具体方法就是通过Java中的Handler对象来实现,代码如下:
public static void main(String[] args) {
//获取日志记录器对象
Logger logger=Logger.getLogger("日志");
//关闭系统配置
logger.setUseParentHandlers(false);
//创建ConsoleHandler
ConsoleHandler con=new ConsoleHandler();
logger.addHandler(con);
//配置日志级别
logger.setLevel(Level.FINER);
con.setLevel(Level.FINER);
//日志记录
logger.log(Level.SEVERE,"sever");
logger.log(Level.WARNING, "warnning");
logger.log(Level.INFO,"info");
logger.log(Level.CONFIG,"config");
logger.log(Level.FINE, "fine");
logger.log(Level.FINER, "finer");
logger.log(Level.FINEST, "finest");
}
输出结果:
此时FINNER以上级别的日志被记录