Log4j和slf4j

阅读: 评论:0

Log4j和slf4j

Log4j和slf4j

 

slf4j

slf4j(全称是Simple Loging Facade For Java)是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就

好像我们经常使用的JDBC一样,只是一种规则而已。因此单独的slf4j是不能工作的,它必须搭配其他具体的日志实现方案,比如

apache的org.apache.log4j.Logger,jdk自带的java.util.logging.Logger等等。</p>

 log4j2

Apache Log4j2是对Log4j的升级,与其前身Log4j 1.x相比有了显着的改进,并提供了许多Logback等可用的改进

 

SLF4J,共享记录与log4j2的关系

commons-logging和slf4j一样都是日志的接口

log4j,logback等等才是日志的真正实现。当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务。这些过程都是透明化的,用户不需要进行任何操作!

 

1)Log4j2怎么结合SLF4J?

2)用slf4j+Log4j2的优点

 

 

1.添加SLF4J的jar包 

添加log4j2的jar包 &nbsp 配置log4j2 

 2.优势
1.可以很好的与客户端解耦<

 

2.节省内存           

 

 log4j的传统日志系统里并没有占位符的概念

 

5.编码实战

Log4j2的配置

jar包依赖

 

<?xml version="1.0" encoding="UTF-8"?>
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出。
-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数。
-->
<configuration status="error" monitorInterval="30"><!--先定义所有的appender--><appenders><!--这个输出控制台的配置--><Console name="Console" target="SYSTEM_OUT"><!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><!--这个都知道是输出日志的格式--><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></Console><!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用--><File name="log" fileName="log/test.log" append="false"><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></File><!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--><RollingFile name="RollingFile" fileName="logs/app.log"filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%"><PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/><SizeBasedTriggeringPolicy size="50MB"/><!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --><DefaultRolloverStrategy max="20"/></RollingFile></appenders><!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--><loggers><!--建立一个默认的root的logger--><root level="info"><appender-ref ref="RollingFile"/><appender-ref ref="Console"/></root></loggers>
</configuration><!--服务器的日志输出不成功有两个原因1. 文件没有写入权限2.路径不对     采用绝对路径-->

A.前提条件

没有调用Log4j-1.x的内部方法,比如Appenders(),LoggerRepository()

没有使用代码的方式配置Log4j

没有调用DOMConfigurator或PropertyConfigurator这两个类

B.替换jar包

把 jar 换成 log4j-1.2-api.jar(这个jar包内有log4j-api、log4j-core两个jar包)

C.修改代码

首先要清楚,jar包前缀不一样,版本1是org.apache.log4j,版本2是org.apache.logging.log4j

a.版本1是Logger( ),改成版本2的Logger( )

b.版本1是RootLogger( ),改成版本2的RootLogger( )

 

本文发布于:2024-01-28 04:14:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063864644688.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Log4j   slf4j
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23