LOG - jul-to-slf4j jdk-logging到slf4j的桥梁

原理:

Java Logging API相关类由JDK提供,我们不能排除掉JDK,因而,在"Java Logging API转SLF4J"过程中采用的转换方案跟"JCL转SLF4J"和"Log4J转SLF4J"采用的转换方案不同,具体思路是以jul-to-slf4j提供的"org.slf4j.bridge.SLF4JBridgeHandler"替换掉Java Logging API使用的Handler(Handler即是Appender),Java Logging API原来使用的Handler将日志输出到Console,文件,数据库等,现在"org.slf4j.bridge.SLF4JBridgeHandler"将日志输出到SLF4J日志框架。简单来说,就是将原本Java Logging API的日志输出重定向到SLF4J日志框架。

Java Logging API的默认配置文件路径为:JDK_HOME/jre/lib/logging.properties,根据以上说明,需要修改“handlers”属性值,修改后"handlers"属性的内容如下:

handlers= org.slf4j.bridge.SLF4JBridgeHandler
 

①增加jar包:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>1.7.12</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.12</version>
        </dependency>
        <!-- 保留原有JDK自带的jar包 -->
        <dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${logback.version}</version>
		</dependency>

		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>${logback.version}</version>
		</dependency>

②增加logging.properties:

#handlers= java.util.logging.FileHandler,java.util.logging.ConsoleHandler
handlers= org.slf4j.bridge.SLF4JBridgeHandler,java.util.logging.FileHandler,java.util.logging.ConsoleHandler
.level= ALL
 
java.util.logging.ConsoleHandler.level = CONFIG
java.util.logging.ConsoleHandler.formatter =java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tF %1$tH:%1$tM:%1$tS %2$s%n%4$s: %5$s%6$s%n
        
java.util.logging.FileHandler.level=CONFIG
java.util.logging.FileHandler.pattern = ./logs/californium/coap-source.%g.log
java.util.logging.FileHandler.limit = 50000000
java.util.logging.FileHandler.count = 10
java.util.logging.FileHandler.formatter =java.util.logging.SimpleFormatter
java.util.logging.FileHandler.append=true

 ③启动脚本start.sh:

#!/bin/bash

nohup java -DfilePath=config -Djava.util.logging.config.file=config/logging.properties -jar jars/coap-server.jar &
echo $! > ci.pid

④修改对应的logback.xml文件,指定需要打印日志的项目目录以及保存的文件路径文件名;

这样,就可以把需要的日志打印到设置的文件目录下啦!

posted @ 2022-01-27 18:36  zhangdaopin  阅读(346)  评论(0编辑  收藏  举报