20200409 日志配置文件

日志jar包冲突

既然抛了jar包冲突 ,那我们就排除一个jar 包即可。关键是排除哪一个jar包 ,这里注意下了,如果你用的是logback日志,一定要排除slf4j-log4j12包,不要排除logback-classic包。 

最重要的是你想使用哪个日志框架?

日志门面,日志实现,桥接包。这三个是必备的。

功能结构:日志框架:slf4j;日志实现:log4j2;桥接包:log4j-slf4j-impl。

需要排除其他的日志依赖。

 

在项目的配置文件中设置日志配置的地址

报错的原因已经找到了,日志文件的地址没有指定,以后要注意。

 

log4j2最大的特点就是异步日志,增加消息队列作为缓存,Log4j2提供了两种实现日志的方式,一个是通过AsyncAppender,一个是通过AsyncLogger,分别对应前面我们说的Appender组件和Logger组件。

 

日志整合,可以统一到slf4,引用slf4j方式。

web工程需要包含log4j-web,非web工程不需要。

 

 

把项目日志系统封装到基础依赖包中

把请求日志提交给Cat客户端进行监控。

log4j2.xml 配置文件

xml文件,定义一些属性,properties

log4j2.xml的配置,log4j2.xml配置文件中各项标签的意义。

配置文件的名称以及在项目中的存放位置;

1)2.x版本配置文件后缀名只能为".xml",".json"或者".jsn".

2)系统选择配置文件的优先级(从先到后),项目resoureces目录下。

3)一般默认使用log4j2.xml进行命名;

配置文件节点解析:属性和节点。

根节点Configuration有两个属性:status和monitorinterval,有两个子节点:Appenders和Loggers(表明可以定义多个Appender和Logger).只有定义了logger并引入的appender,appender才会生效。

tatus用来指定log4j本身的打印日志的级别.一般生产环境使用info级别,日志的级别。

 

Appenders节点,常见的有三种子节点:Console、RollingFile、File.

Console节点用来定义输出到控制台的Appender.

1)name:指定Appender的名字.

2)target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT.

3)PatternLayout:输出格式,不设置默认为:%m%n.

File节点用来定义输出到指定位置的文件的Appender.

1)name:指定Appender的名字.

2)fileName:指定输出日志的目的文件带全路径的文件名.

3)PatternLayout:输出格式,不设置默认为:%m%n.

RollingFile节点用来定义超过指定大小自动删除旧的创建新的的Appender.

name:指定Appender的名字.

fileName:指定输出日志的目的文件带全路径的文件名.

PatternLayout:输出格式,不设置默认为:%m%n.

filePattern:指定新建日志文件的名称格式.

Policies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志.

基于时间的滚动策略,基于指定文件大小的滚动策略。

 

Loggers节点,常见的有两种:Root和Logger.

Appender属于日志处理器。

Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。

程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。

不同级别的日志写入到不同的文件中,RollingFile结点。

过滤掉spring和mybatis的一些无用的DEBUG信息。

 

使用Slf4j集成Log4j2构建项目日志系统;使用slf4j可以很好的保证我们的日志系统具有良好的兼容性,兼容当前常见几种日志系统

slf4j核心包,log4j2核心包,与slf4j保持桥接

 

一般不是使用slf4j的配置文件么? 统一使用日志门面的还是日志实现的?一般使用日志门面的配置文件。

日志如何每天进行分页?每天创建一个文件夹。

log日志显示的默认格式

日志输出级别,这个修改是如何影响你的代码运行的?

日志配置文件里面是什么? 日志的显示格式,如何分页等?

为什么要关注显示格式?

 

Kibana是为Elasticsearch设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来.所有的log数据全部存储在ES上面。

 

https://www.cnblogs.com/new-life/p/9246143.html

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO" monitorInterval="30">
    <properties>
        <property name="logPath" value="${sys:LOG_PATH:-/opt/tomcat-log}"/>
        <property name="logPatternLayout"
                  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%t] %class{36}.%M - %msg%xEx%n"/>
        <property name="logRolloverSize" value="100M"/>
        <property name="logKeepDays" value="15d"/>
        <property name="logDirNumberOfFiles" value="300"/>
    </properties>

    <Appenders>
        <!--CONSOLE-->
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
        </Console>

        <!--TRACE-->
        <RollingFile name="TRACE" filename="${logPath}/trace.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/trace-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="debug" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/trace*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--DEBUG-->
        <RollingFile name="DEBUG" filename="${logPath}/debug.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/debug-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/debug*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--INFO-->
        <RollingFile name="INFO" filename="${logPath}/info.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/info-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/info*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--WARN-->
        <RollingFile name="WARN" filename="${logPath}/warn.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/warn-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/warn*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--ERROR-->
        <RollingFile name="ERROR" filename="${logPath}/error.log"
                     filepattern="${logPath}/$${date:yyyy-MM-dd}/error-%d{yyyyMMdd}-%i.log">
            <PatternLayout charset="UTF-8" pattern="${logPatternLayout}"/>
            <Filters>
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${logRolloverSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${logDirNumberOfFiles}">
                <Delete basePath="${logPath}" maxDepth="3">
                    <IfFileName glob="*/error*.log"/>
                    <IfLastModified age="${logKeepDays}"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <CatAppender name="CatAppender"/>
    </Appenders>

    <Loggers>
        <Root level="INFO">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="TRACE"/>
            <appender-ref ref="DEBUG"/>
            <appender-ref ref="INFO"/>
            <appender-ref ref="WARN"/>
            <appender-ref ref="ERROR"/>
            <appender-ref ref="CatAppender"/>
        </Root>
          
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error"/>
                
        <Logger name="org.apache.catalina.util.LifecycleBase" level="error"/>
                
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn"/>
                
        <logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
                
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn"/>
                
        <Logger name="org.crsh.plugin" level="warn"/>
                
        <logger name="org.crsh.ssh" level="warn"/>
                
        <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error"/>
                
        <Logger name="org.hibernate.validator.internal.util.Version" level="warn"/>
                
        <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="warn"/>
                
        <logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
                
        <logger name="org.thymeleaf" level="warn"/>
    </Loggers>
</Configuration>

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值