现在的位置: 首页 > 综合 > 正文

logback实用配置

2019年06月19日 ⁄ 综合 ⁄ 共 2522字 ⁄ 字号 评论关闭

logback 的出现让我们处理日志又简单了许多,也非常灵活,如:按照制订的日志生成规则输出不同的日志到不同的文件及数据库,这对于日后的数据挖掘容易了许多;

不过,对于中小型项目而言,真的没必要纠结日志这块的性能,但对于高并发应用就要对日志花些心思进去,不能掉以轻心了,并发应用众多瓶颈之中,日志是其中的一个。

基于logback构建一个高性能的、灵活、方便的适用于高并发应用的异步日志系统也是非常的方便和快速。

先放一个比较实用的一个配置吧,他非常简单,就几行配置内容(logback-1.0.6):

<configuration scan="true" scanPeriod="1 minutes">
	
	<property name="app.logdir" value="out/log"></property>
	<property name="log.error.dir" value="error"></property>
	<property name="log.basic.dir" value="basic"></property>
	<property name="app.name" value="ccb"></property>
	<property name="error.log.name" value="${app.name}.error"></property>
	<property name="basic.log.name" value="${app.name}.basic"></property>
	<property name="ConsoleLogPattern" 
		value="[%d{yyyy-MM-dd HH:mm:ss.SSS}][%logger][%level] %msg%n" />
	
	<property name="FileLogPattern" 
		value="[%d{yyyy-MM-dd HH:mm:ss.SSS}][thread:%thread][%level] %msg%n" />
	
	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>DEBUG</level>
		</filter>
		<encoder>
			<pattern>${ConsoleLogPattern}</pattern>
		</encoder>
	</appender>

	<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${app.logdir}/${log.error.dir}/${error.log.name}.log</file>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
	      <level>ERROR</level>
	      <onMatch>ACCEPT</onMatch>
	      <onMismatch>DENY</onMismatch>
	    </filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${app.logdir}/${error.log.name}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
			<maxHistory>90</maxHistory>
		</rollingPolicy>

		<encoder>
			<pattern>${FileLogPattern}</pattern>
		</encoder>
	</appender>
	
	<appender name="BASIC_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${app.logdir}/${log.basic.dir}/${basic.log.name}.log</file>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
	      <level>ERROR</level>
	      <onMatch>DENY</onMatch>
	      <onMismatch>ACCEPT</onMismatch>
	    </filter>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${app.logdir}/${basic.log.name}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
			<maxHistory>90</maxHistory>
		</rollingPolicy>

		<encoder>
			<pattern>${FileLogPattern}</pattern>
		</encoder>
	</appender>

	<!-- ALL < TRACE < DEBUG < INFO < WARN < ERROR < OFF -->
	<!-- logger -->
	<logger name="com.ccb" level="ERROR" additivity="false">
		<appender-ref ref="ERROR_FILE" />
	</logger>
	<logger name="com.ccb" level="DEBUG" additivity="false">
		<appender-ref ref="BASIC_FILE" />
	</logger>
	<!-- <logger name="com.ccb" level="DEBUG" additivity="false">
		<appender-ref ref="CONSOLE" />
	</logger> -->
</configuration> 

抱歉!评论已关闭.