使用logback.xml配置来实现日志文件输出

阅读更多

 

        Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

 

logback.xml配置如下:

 









	
	
	
	




	
	
		
		
			%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n
		
	
	
	
	
	
	
		
		
			ERROR
			ACCEPT
			DENY
		
		
		
			
			${log_dir}/%d{yyyy-MM-dd}/error-log.log
			
			${maxHistory}
		
		
		
		
   		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
		
	
	
	
	
	
	
		
		
			WARN
			ACCEPT
			DENY
		
		
			
			${log_dir}/%d{yyyy-MM-dd}/warn-log.log
			
			
			${maxHistory}
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
		
	
	
	
	
	
	
	
		
		
			INFO
			ACCEPT
			DENY
		
		
			
			${log_dir}/%d{yyyy-MM-dd}/info-log.log
			
			
			${maxHistory}
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
		
	
	
	
	
	
	
	
		
		
			DEBUG
			ACCEPT
			DENY
		
		
			
			${log_dir}/%d{yyyy-MM-dd}/debug-log.log
			
			
			${maxHistory}
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
		
	
	
	
	
	
	
	
		
		
			TRACE
			ACCEPT
			DENY
		
		
			
			${log_dir}/%d{yyyy-MM-dd}/trace-log.log
			
			
			${maxHistory}
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
		
	

      
      
      
      
      
      
      
    
    
    
    
	
		
		
		
		
		
		
		
		
	

 

 

LogUtils.java

 

package log.base;

package com.ghca.easyview.server.common.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogUtils {
	/**
	 * 错误输入日志
	 */
	public static final Logger log = LoggerFactory.getLogger(LogUtils.class);

	/**
	 * 记录一直 info信息
	 * 
	 * @param message
	 */
	public static void logInfo(String message) {
		StringBuilder s = new StringBuilder();
		s.append((message));
		log.info(s.toString());
	}

	public static void logInfo(String message, Throwable e) {
		StringBuilder s = new StringBuilder();
		s.append(("exception : -->>"));
		s.append((message));
		log.info(s.toString(), e);
	}

	public static void logWarn(String message) {
		StringBuilder s = new StringBuilder();
		s.append((message));

		log.warn(s.toString());
	}

	public static void logWarn(String message, Throwable e) {
		StringBuilder s = new StringBuilder();
		s.append(("exception : -->>"));
		s.append((message));
		log.warn(s.toString(), e);
	}

	public static void logDebug(String message) {
		StringBuilder s = new StringBuilder();
		s.append((message));
		log.debug(s.toString());
	}

	public static void logDebug(String message, Throwable e) {
		StringBuilder s = new StringBuilder();
		s.append(("exception : -->>"));
		s.append((message));
		log.debug(s.toString(), e);
	}

	public static void logError(String message) {
		StringBuilder s = new StringBuilder();
		s.append(message);
		log.error(s.toString());
	}

	/**
	 * 记录日志错误信息
	 * 
	 * @param message
	 * @param e
	 */
	public static void logError(String message, Throwable e) {
		StringBuilder s = new StringBuilder();
		s.append(("exception : -->>"));
		s.append((message));
		log.error(s.toString(), e);
	}
}

 

TEST

package com.ghca.easyview.server.log.test;

import java.io.File;
import java.io.IOException;

import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ch.qos.logback.core.joran.spi.JoranException;

import com.ghca.easyview.server.common.utils.LogBackConfigLoader;
import com.ghca.easyview.server.common.utils.LogUtils;
import com.ghca.easyview.server.config.ServerConfig;

public class TestLog {

	@Before
	public void before() {
		File file = new File(System.getProperty("user.dir"));
		String path = file.getPath() + File.separator + "conf";
		// 将主要配置文件路径赋值给 ServerConfig.configPath属性
		ServerConfig.config_path = path;
		try {
			// 加载日志文件
			LogBackConfigLoader.load(ServerConfig
					.loadLogBackConfPath("logback.xml"));
		} catch (IOException | JoranException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void test1() {
		LogUtils.logInfo("INFO ~");
		LogUtils.logDebug("DEBUG ~");
		LogUtils.logError("ERROR~");
		LogUtils.logWarn("WARN ~");
	}
}

 

 根据日志级别输出不等的日志信息,

 

需要以下jar

  • logback-classic-1.0.10.jar (249.5 KB)
  • 下载次数: 6
  • logback-core-1.0.10.jar (358.3 KB)
  • 下载次数: 6
  • slf4j-api-1.7.7.jar (28.6 KB)
  • 下载次数: 6
  • fastjson-1.1.34.jar (348.9 KB)
  • 下载次数: 7

你可能感兴趣的:(java,logback,日志)