ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

logback配置两套日志路径

2021-12-01 14:33:23  阅读:159  来源: 互联网

标签:场景 log MM dd sec 两套 日志 logback


日志推送工作根据公司日志管理规范及国家攻防演练需要,请协助对所有应用重要场景的日志进行收集,需求如下:

1、涉及场景:
用户登录场景
密码修改场景
密码找回场景
注册场景

2、日志字段需求及格式:
filebeat对接日志格式:
登录,修改,注册,找回
系统编码|日志类型|主机名|端口|URI|提交的内容|返回的内容|响应码|客户端IP|用户名|登陆时间|是否成功|失败原因|
第二个字段是日志类型,按如下设定
登陆是sec-login,修改是sec-modify,注册是sec-register,找回是sec-retrieve
3、日志推送方式:
filebeat
kafka
这里用了SpringBoot LogBack文件配置了下:

logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <!--    log不同环境日志存放路径可自定义 如下: -->
    <!-- 生产环境 -->
    <springProfile name="prod">
        <springProperty name="LOG_PATH" source="logging.path" defaultValue="/app/user/User-web/logs"/>
    </springProfile>
    <!-- 测试环境 -->
    <springProfile name="dev">
        <springProperty name="LOG_PATH" source="logging.path" defaultValue="/app/User-web/logs"/>
    </springProfile>
    <!--自定义控制台日志格式-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
             <!-- 日志文件的格式 可根据需要自行配置-->
            <pattern>%d{yyy-MM-dd HH:mm:ss.SSS} -%-5level ${PID:- } --- [%t] %-40.40logger{39}[lineno:%line]: %msg%n</pattern>
        </encoder>
    </appender>
    <!--系统INFO级别日志-滚动记录日志-->
    <appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值-->
        <File>${LOG_PATH}/user-web.log</File>
        <!--如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。-->
        <append>true</append>
        <!-- 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--设置滚动文件规则,如果直接使用 %d,默认格式是 yyyy-MM-dd-->
            <fileNamePattern>${log.LOG_PATH}/Main_info-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <!--保留5天的日志,5天的压缩文件是可以发现问题并且解决问题的最长时间-->
            <maxHistory>5</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!--文件达到 最大128MB时会被压缩和切割 -->
                <maxFileSize>10 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>%d{yyy-MM-dd HH:mm:ss.SSS} -%-5level ${PID:- } --- [%t] %-40.40logger{39}[lineno:%line]: %msg%n</pattern>
        </encoder>
    </appender>


    <!--业务LOGIN成功日志-->
    <appender name="Login_Appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/user-web-login.log</File>
        <append>true</append>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--设置滚动文件规则,如果直接使用 %d,默认格式是 yyyy-MM-dd-->
            <fileNamePattern>${log.LOG_PATH}/Login入口-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <!--保留5天的日志,5天的压缩文件是可以发现问题并且解决问题的最长时间-->
            <maxHistory>5</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!--文件达到 最大128MB时会被压缩和切割 -->
                <maxFileSize>10 MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>%msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 下面就是根据业务-->
    <logger name="login_log" additivity="false" level="INFO">
        <appender-ref ref="Login_Appender"/>
    </logger>

    <!--info和error分开打印,注:ERROR > WARN > INFO > DEBUG > TRACE-->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="SYS_INFO"/>
    </root>
</configuration>

这样就配置完两套日志路径了,下面建了个工具类,把涉及场景所需的日志内容添加到工具类,java开发过程中经常需要打印日志信息,往往会在每个类的第一行加上形如图代码,然后按照需求加上就行所需的日志内容,如:
在这里插入图片描述
加入涉及场景所需的日志内容,输出日志
在这里插入图片描述
然后在对应场景调用日志工具类就行了

标签:场景,log,MM,dd,sec,两套,日志,logback
来源: https://blog.csdn.net/weixin_46133504/article/details/121652083

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有