zoukankan      html  css  js  c++  java
  • sl4fj日志级别

    sl4j相关知识

    sl4j相关基础知识

    mkyong的sl4j示例

    sl4j的输出分为如下几种:

    • org.apache.log4j.ConsoleAppender(控制台),
    • org.apache.log4j.FileAppender(文件)
    • org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
    • org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
    • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    我想把日志输出到文件,看起来应该采用DailyRollingFileAppender.
    在logback.xml中设置如下

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    	<property name="DEV_HOME" value="c:/logs" />
    	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    		<layout class="ch.qos.logback.classic.PatternLayout">
    			<Pattern>
    				%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
    			</Pattern>
    		</layout>
    	</appender>
    	<appender name="FILE-AUDIT"
    		class="ch.qos.logback.core.rolling.RollingFileAppender">
    		<file>${DEV_HOME}/debug.log</file>
    		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    			<Pattern>
    				%d{yyyy-MM-dd HH:mm:ss} - %msg%n
    			</Pattern>
    		</encoder>
    		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    			<!-- rollover daily -->
    			<fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                            </fileNamePattern>
    			<timeBasedFileNamingAndTriggeringPolicy
    				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    				<maxFileSize>10MB</maxFileSize>
    			</timeBasedFileNamingAndTriggeringPolicy>
    		</rollingPolicy>
    	</appender>
    	<appender name="FILE-ERROR"
    		class="ch.qos.logback.core.rolling.RollingFileAppender">
    		<file>${DEV_HOME}/error.log</file>
    		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    			<Pattern>
    				%d{yyyy-MM-dd HH:mm:ss} - %msg%n
    			</Pattern>
    		</encoder>
    		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    			<!-- rollover daily -->
    			<fileNamePattern>${DEV_HOME}/archived/error.%d{yyyy-MM-dd}.%i.log
                            </fileNamePattern>
    			<timeBasedFileNamingAndTriggeringPolicy
    				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    				<maxFileSize>10MB</maxFileSize>
    			</timeBasedFileNamingAndTriggeringPolicy>
    		</rollingPolicy>
    	</appender>
    	<!-- Send logs to both console and file audit -->
    	<logger name="com.mkyong.web" level="debug"
    		additivity="false">
    		<appender-ref ref="FILE-AUDIT" />
    		<appender-ref ref="STDOUT" />
    	</logger>
    	<root level="error">
    		<appender-ref ref="FILE-ERROR" />
    	</root>
    </configuration>
    

    成功的将日志输出到指定的c:/logs/的head0.log文件下,在debug level下,输出的有 info ,有debug,但是在控制台却没有输出了,要让控制台和文件同时有输出,便于调试.

    level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者您定义的级别。

    Log4j 建议只使用四个级别 ,优先级从高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG 。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了 INFO 级别,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来 。 appenderName 就是指日志信息输出到哪个地方。您可以同时指定多个输出目的地。

    日志打印最佳实践

    低级别日志打印时进行log.isDebugEnable()判断

    日志文件只打印两份debug级别和error级别,防止多份写入占用磁盘

    日志打印时以排查文的角度打印,若日志打印后有利于问题排查,即打印日志。

    若内存足够,使用异步日志输出方式,增加程序性能。

    参考链接###

  • 相关阅读:
    is_enable()、is_displayed()、isSelected()
    python selenium(常用关键字)
    Jenkins 构建 Jmeter 项目之源代码管理(SVN)
    Jenkins 构建 Jmeter 项目
    SAP SD基础知识之现金销售
    SAP SD基础知识之与FI集成相关的流程与配置
    SAP SD 基础知识之计划行类别(Schedule Line Category)
    SAP MM 事务代码MRKO触发的财务凭证不会出现在PO History里
    SAP MM 对于MRKO事务代码的几点优化建议
    SAP SD 销售中的借贷项凭证
  • 原文地址:https://www.cnblogs.com/alcc/p/10017900.html
Copyright © 2011-2022 走看看