美文网首页Java those things
如何记录LOG ---- LOGBACK

如何记录LOG ---- LOGBACK

作者: M_ENG | 来源:发表于2018-03-14 17:26 被阅读51次

    1.JAVA WEB程序出现非运行时异常、不跳转错误页面、 就使用try-catch 捕获异常 使程序不跳转错误页面且使用Logger.error 记录错误、程序继续执行异常方案

    2.JAVA WEB程序出现非运行时异常、跳转错误页面、 就不用捕获异常。直接继续抛出异常,抛给Spring Spring boot、Spring boot设置跳转错误页面、AJAX会进入error方法 跳转错误页面

    运行时异常(就是程序bug、不应该出现的)Spring boot 也是会自动跳转错误页面、AJAX会进入error方法 跳转错误页面

    如果需要Logger.error记录异常、在什么地方捕获异常并使用Logger.error方法

    当函数没有返回值时、这时候就必须捕获异常记录日志、做相应的处理。不然就一直向上抛。

    因为有返回值时、你捕获异常无法做相应的操作、因为你需要返回数据、你根本不知道返回什么数据。没办法替调用者做处理、除非是返回boolean类型

    LOGBACK.XML

    过滤器,可以指定哪些包,哪个记录到等级

    root > com.meng > com.meng.a_controller    等级制、additivity是设置下级是否向上级传递打印log信息、默认true、向上级传递打印信息,则会打印多次log信息

    修改为false 则不会向上传递; 正常情况下是不需要打印多次信息的;

    <logger name="com.meng" level="INFO" additivity="false">

        <appender-ref ref="LOG_FILE"/>

    </logger>

    <logger name="com.meng.a_controller" level="DEBUG"  additivity="false">

        <appender-ref ref="LOG_FILE"/>

    </logger>

    全局,控制台和log文件 记录INFO及以上级别日志 生产环境为Error

    <root level="INFO">

        <appender-ref ref="CONSOLE" />

        <appender-ref ref="LOG_FILE"/>

    </root>

    注意:

    spring boot中设置sql打印:logging.level.xxx.xxx.xxx=DEBUG

    在logback-spring.xml的配置中,如果不把appender name="LOG_FILE" 放入<springPofile></springPofile>中、就算你只是输出到CONSOLE, 还是会去创建LOG_FILE中设置的log文件

    当然日志还是在控制台输出,并不会写到log文件中。这个问题并不仅仅出现在spring boot 中,是logback本身的问题,就算不用spring也会出现这种问题


    纯属个人理解   

    不理解或者是有什么错误的地方、欢迎留言并会及时回复和改正的

    相关文章

      网友评论

        本文标题:如何记录LOG ---- LOGBACK

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