7.5 记录日志

7.5.1基本日志

全局日志记录器

Logger.getGlobal().info("File -> OPen menu item selected");

在适当的地方(如main开始)调用


import java.util.logging.Logger;

Logger.getGlobal().setLevel(Level.OFF);

7.5.2高级日志

创建或获取记录器:

private static final myLogger = Logger.getLogger("com.whaleson.test");

日志记录级别:

  • SEVERE
  • WARNING
  • INFO 默认是这个级别
  • CONFIG
  • FINE
  • FINER
  • FINSET

默认情况下只记录前三个级别。
可以使用LEVEL.ALL开启所有级别的记录。
LEVEL.OFF关闭所有级别的记录。

日志的记录方法

指定级别

调用logp方法获得调用类和方法的确切位置,这个方法的签名为:

void logp(Level l,String className,String methodName,String message);

跟踪执行流的方法

void entering(String className,String methodName);

7.5.3修改日志管理器配置

修改日志系统的各种属性:

jre/lib/logging.properties

要想使用另外一个配置文件:

java.util.logging.config.file

并使用下面的命令启动程序:

java -Djava.util.logging.config.file=configFile MainClass

日志管理器在VM启动过程中初始化,这在main执行之前完成,如果在main中调用System.setProperty(“java.util.logging.config.file”,file),也会调用LogManager.readConfiguration()来重新初始化日志管理器。

7.5.4本地化

//在请求日志记录器时,可以指定一个资源包:
Logger logger = Logger.getLogger(loggerName,"com.wahleson.logmessage");

7.5.5处理器

在默认情况下,日志处理器将记录发送到ConsoleHandler中,并由它输出到System.err流中。

要想记录FINE级别的日志,就必须修改配置文件中的默认日志记录级别和处理器级别。可以绕过配置文件,安装自己的处理器。

Logger logger = Logger.getLogger("com.whaleson.App");
logger.setLevel(Level.FINE);
//默认情况下,日志记录器将记录发送到自己的处理器和父处理器。如果不设置为false,将会有两次记录。
logger.setUseParentHandlers(false);
Handler handler = new ConsoleHandler();
handler.setLevel(Level.FINE);
logger.addHandler(handler);
``

将日志输出到其它地方,就需要添加其它处理器:

  • FileHandler 收集记录到文件中。
  • SocketHandler 发送到特定的主机和端口。

如果希望编写更复杂的流处理器,就应该扩展handler类,并自定义publish、finish和close方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值