Log4j, 사용자 정의 log4j를 불러옵니다.xml 프로필, 동적 감청log4j.xml 로그 레벨 업데이트

2887 단어

 
 
 
실제 개발 프로젝트에서 대부분의 제품의 로그 등급은 ERROR 등급이다. 이렇게 하면 시스템 운영 효율을 높일 수 있고 INFO 로그가 너무 많은 것을 방지할 수 있기 때문에 로그 파일이 빨리 가득 차서 시스템이 장시간 로그를 저장할 수 없다.더 나아가 포지셔닝 문제가 불편하게 된다.
 
그러나 ERROR 레벨에서는 시스템 실행 세부 로그 정보를 볼 수 없습니다.INFO 로그를 봐야 할 때가 있습니다.따라서 시스템 운행 과정에서 로그 단계를 동적 수정할 수 있는 방법이 가장 좋다.
 
동적 수정 로그 단계를 실현하는 데는 두 가지 방법이 있다.
 
1. Log4j를 이용한 클래스 및 방법
2. 자체 모니터링log4j.xml 파일 업데이트, 동적 설정 업데이트를 실현합니다.
 
 
 
 
 
 
 
1. Log4j가 제공하는 동적 설정 업데이트 방법을 이용하여 동적 수정 로그 단계를 실현한다.
PropertyConfigurator 또는 DOMConfigurator 클래스의 configure AndWatch (String configFileName) 또는 configure AndWatch (String configFileName, long delay) 를 호출합니다.
 
 
Log4j DOMconfigurator 클래스configure AndWatch 방법의 원본을 통학하면 configure AndWatch () 방법을 호출하면 Log4j가 라인을 시작합니다. 인참delay 또는 기본 1분 주기에 따라 지정한log4j를 스캔합니다.xml 파일의 업데이트 상황, 업데이트가 발견되면log4j를 다시 불러옵니다.xml 설정.
 
코드 예:
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

/**
 * 
 */

/**
 * @author Administrator
 * 
 */
public class LogConfigurator
{
	private static Logger logger = Logger.getLogger(LogConfigurator.class);
	
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		DOMConfigurator.configureAndWatch("d:\\log4j\\log4j.xml", 5000L);
		while (true)
		{
			try
			{
				logger.info("hello-Info");
				logger.debug("hello-Debug");
				logger.error("hello-Error");
				Thread.sleep(5000);
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
			
		}
	}
	
}

D디스크, Log4j 폴더에서 log4j를 만듭니다.xml 파일.내용은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!--  logger ,  -->
	<logger name="LogConfigurator">
		<level value="info" />
		[color=red]
		<appender-ref ref="console" />
		[/color]
	</logger>

	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[DomConfigurator Test][%d{ABSOLUTE}][%-5p][%m]%n" />
		</layout>
	</appender>

</log4j:configuration>

 
LogConfigurator의 main 메서드를 실행하고 D:\log4j\log4j를 수시로 수정합니다.xml 파일에 정의된 로그 수준입니다.

관찰 콘솔이 인쇄한 로그 수준입니다.

좋은 웹페이지 즐겨찾기