在我们日常的开发中,肯定是少不了要和日志打交道,在Java中使用日志功能非常方便,请看本文的介绍。

1、创建Logger对象

(1)查找或创建一个logger。如果已经存在同名的logger则返回此logger,否则创建logger然后再返回它。

static Logger getLogger(String name)

(2)查找或创建一个logger。 resourceBundleName是用来指定外部资源,如果不指定,会默认用defaultBundle指定的资源,即是:…/jre/lib下的logging.properties文件。ResourceBundle类是Java自带的类,用来读取项目中后缀为properties的配置文件。

static Logger getLogger(String name, String resourceBundleName) 

备注:logger都是单例,在JVM进程中存在一份,getLogger的时候,没有对应name的logger则新建,后续直接使用即可。

2、Logger对象的属性

Logger所对应的属性文件在Java安装目录下的jre/lib/logging.properties

logging.properties文件中的主要内容如下所示:

 
# 将日志内容输出到控制台和文件中
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler  

# 日志输出级别
java.util.logging.ConsoleHandler.level = INFO   

# 为生成的输出文件名称指定一个模式,见下文的补充:
java.util.logging.FileHandler.pattern = %h/java%u.log
  
# 限制文件的大小,以字节为单位
java.util.logging.FileHandler.limit = 50000 
  
# 指定有多少输出文件参与循环(默认为 1)
java.util.logging.FileHandler.count = 1       

# 指定要使用的 Formatter 类的名称
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter    

java.util.logging.ConsoleHandler.level = INFO

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

补充:模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:

"/" 本地路径名分隔符
"%t" 系统临时目录
"%h" "user.home" 系统属性的值
"%g" 区分循环日志的生成号
"%u" 解决冲突的惟一号码
"%%" 转换为单个百分数符号"%"  

标签: none

添加新评论