java.util.logging.FileHandler Handler

本文介绍了一个具体的Java日志配置实例,展示了如何使用Logger组件设置日志级别、添加文件处理器,并输出不同级别的日志信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

		Logger log = Logger.getLogger("com.my.test.lg");
		log.setLevel(Level.FINER);
		log.setUseParentHandlers(true);//true:会同时发送到控制台
		//Handler handler = new FileHandler();
		Handler handler = new FileHandler(Thread.class.getResource("/").getPath()+"java%u.log");//此处配置的pattern会覆盖logging.properties里java.util.logging.FileHandler.pattern的配置
		handler.setLevel(Level.INFO);
		log.addHandler(handler);
		
		log.severe(" severe");
		log.warning(" warning");
		log.info(" info");
		log.config(" config");
		log.fine(" fine");
		log.finer(" finer");
		log.finest(" finest");

### JDK 21 `java.util.logging` 使用指南和特性介绍 #### 日志级别设置 在JDK 21中,`java.util.logging.Logger` 提供了多种日志记录方法来区分不同严重程度的消息。这些方法包括但不限于 `finest`, `finer`, `fine`, `config`, `info`, `warning`, 和 `severe` 方法[^1]。 ```java package example; import java.util.logging.*; public class LoggingExample { public static void main(String[] args) { Logger logger = Logger.getLogger(LoggingExample.class.getName()); // 记录不同类型的日志消息 logger.log(Level.FINEST, "This is a finest message"); logger.log(Level.FINER, "This is a finer message"); logger.log(Level.FINE, "This is a fine message"); logger.log(Level.CONFIG, "This is a config message"); logger.log(Level.INFO, "This is an info message"); logger.log(Level.WARNING, "This is a warning message"); logger.log(Level.SEVERE, "This is a severe message"); } } ``` #### 配置文件调整 对于希望自定义编码方式或其他属性的情况,在应用程序启动前可以通过编辑位于 `$JAVA_HOME/conf/logging.properties` 文件实现。例如更改控制台处理器使用的字符集为GBK而非默认UTF-8: ```properties java.util.logging.ConsoleHandler.encoding = GBK ``` 此操作允许开发者根据项目需求灵活调整日志系统的输出格式与行为[^2]。 #### 解决潜在冲突 当应用服务器如TongWeb8接管了 `java.util.logging.Logger` 的管理权限时,可能会引发一些意想不到的行为或错误。为了避免这种情况发生,建议检查并适当配置应用服务器选项以禁用其对Java内置Logger机制的影响[^3]。 #### 输出至外部文件 为了便于长期保存以及后续分析,通常会考虑将日志写入到磁盘上的特定位置而不是仅仅打印到标准输出流上。这可通过创建 `FileHandler` 实例完成,并为其指明目标路径;关于如何构建跨平台兼容的相对/绝对路径字符串,请参阅相关资料获取更多信息[^4]。 ```java try { FileHandler fileHandler = new FileHandler("/path/to/logfile.log", true); fileHandler.setFormatter(new SimpleFormatter()); Logger globalLogger = Logger.getLogger(""); globalLogger.addHandler(fileHandler); } catch (IOException e) { System.err.println("Failed to initialize log handler."); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值