美文网首页
logback.xm配置解析

logback.xm配置解析

作者: 错位的季节 | 来源:发表于2018-01-09 21:38 被阅读348次

    写日志到指定的文件:
    配置:
    <logger name="logAppOperateAndroid" additivity="false">
    <appender-ref ref="log-app-operate-android"/>
    </logger>
    程序中:
    private Logger loggerSigFox = LoggerFactory.getLogger("logSigFox");
    loggerSigFox.info(message);
    这样,就可以把指定的信息,输出到指定的地方
    :通过LevelFilter可以过滤需要的日志等级
    这里,只匹配INFO基本的日志,其他的全部DENY,
    这里用的是FileAppender,讲日志输出到固定的文件上 。也可以使用
    class="ch.qos.logback.core.rolling.RollingFileAppender滚动输入日志,按照年月日等规则输入

    <appender name="rollingAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>/logs/heuristic-%d{yyyy-MM-dd}.log</fileNamePattern>  
            <maxHistory>30</maxHistory>  
        </rollingPolicy>
    
         <appender name="log-app-operate-android"
                  class="ch.qos.logback.core.FileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <file>../log_app_operate_android/log_android.log</file>
            <append>true</append>
            <encoder>
                <pattern>%msg%n</pattern>
            </encoder>
        </appender>
       <logger name="logAppOperateAndroid" additivity="false">
            <appender-ref ref="log-app-operate-android"/>
        </logger>
    
    

    控制台输出

        <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
           <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} %L %M- %msg%n</pattern>
            </encoder>
        </appender>
    

    通过LogStash收集到ELK

        <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
     <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
    
            <springProfile name="!prod">
                <remoteHost>192.168.1.1</remoteHost>
            </springProfile>
    
            <springProfile name="prod">
                <remoteHost>192.168.2</remoteHost>
            </springProfile>
           <port>4567</port>
            <!-- encoder is required -->
            <encoder class="net.logstash.logback.encoder.LogstashEncoder">
                <springProfile name="dev">
                    <customFields>{"service_name":"dev-log-service"}</customFields>
                </springProfile>
                <springProfile name="test">
                    <customFields>{"service_name":"test-log-service"}</customFields>
                </springProfile>
                <springProfile name="release">
                    <customFields>{"service_name":"release-log-service"}</customFields>
                </springProfile>
                <springProfile name="prod">
                    <customFields>{"service_name":"prod-log-service"}</customFields>
                </springProfile>
            </encoder>
    <keepAliveDuration>5 minutes</keepAliveDuration>
        </appender>
    
    

    配置环境

    springProfile name default指按照spring的默认文件appliacation.yml启动
    也可以指定:dev,test其他文件启动。
    如下配置是讲本地启动程序在控制台输出,远程设置启动参数的日志,通过上面配置的stash日志,输入到ELK

    
       <springProfile name="default">
           <root level="INFO">    这里表示default环境,只收集INFO级别以下的日志
               <appender-ref ref="stdout"/>
           </root>
       </springProfile>
    
       <springProfile name="!default">
           <root level="WARN"> 这里表示非default环境,只收集WARN级别以下的日志
               <appender-ref ref="stash"/>
           </root>
       </springProfile>
    

    logback总结

    1.FileAppender:输出日志到指定文件 RollingFileAppender:根据规则生成不同的文件

    1. LevelFilter 日志等级过滤器,通过
               <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
    

    过滤指定等级日志。

    相关文章

      网友评论

          本文标题:logback.xm配置解析

          本文链接:https://www.haomeiwen.com/subject/dpngnxtx.html