美文网首页
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