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文件,指定需要打印日志的项目目录以及保存的文件路径文件名;
这样,就可以把需要的日志打印到设置的文件目录下啦!