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级别,防止多份写入占用磁盘

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

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

    参考链接###

  • 相关阅读:
    0基础培训Web前端2个月实习一个月4000?
    amazon kindle和kindle阅读
    手动双面打印
    一分价钱一分货
    【转】cocos2d-x 开发中使用的一些工具
    怎么做网线,网线水晶头接法和线序(图文详解)
    schedule
    Match+Faq
    【转】以XML文件方式保存用户数据——2013-08-25 22
    【转】针对iOS VS. Android开发游戏的优劣——2013-08-25 17
  • 原文地址:https://www.cnblogs.com/alcc/p/10017900.html
Copyright © 2011-2022 走看看