log 의 올 바른 사용 방법
1. 초기 화, 정적 인 스 턴 스 생 성: comons - logging 에서: private static Log log = LogFactory.getLog(TestLog. class ); 로그 4j: static Logger logger = Logger.getLogger(TestLog4j. class ); PropertyConfigurator.configure( " log4j.properties " ); 두 번 째 문장 은 생략 할 수 있 고 부족 한 상황 에서 그 는 스스로 log4j. properties 를 찾 을 것 이다.
2. 프로그램 에서 사용: logger. debug ("Here is some DEBUG");logger.info( " Here is some INFO " ); logger.warn( " Here is some WARN " ); 만약 이렇게 한다 면, 모든 프로그램 에서 정적 실례 를 생 성 할 것 이다. 만약 비교적 큰 프로젝트 라면, 이렇게 하 는 것 은 타당 하지 않다.전체 프로그램 에서 인 스 턴 스 를 만 들 수 있 습 니 다. 즉, 초기 화 입 니 다. 전체 프로그램 에서 이 인 스 턴 스 를 사용 합 니 다.예 를 들 어, 우 리 는 로그 초기 화 클래스 를 작성 합 니 다. 다음 과 같 습 니 다.
package myb.hi.core.log;
import org.apache.commons.logging.*;
public class Logs {
private static Log log;
/**
* Define a static Log variable,
*/
static {
try {
log = LogFactory.getLog(Logs.class);
} catch (Exception ex) {
System.out.println("can't init the Logger, caused by: " + ex);
}
}
/**
* Get the log object
*
* @return Log
*/
public static Log getLogger() {
return log;
}
}
위의 코드 는 commons - logging 을 사용 하여 정적 로그 인 스 턴 스 를 생 성 합 니 다. 다음 프로그램 은 이렇게 할 수 있 습 니 다. Logs. getLogger (). info ("begin Action: UserBaseInfoAction. getSingleUserInfo ()");DBSession.begin();String fname=userForm.getFname();userForm=UserBaseInfoBusiness.getSingleUserInfo(DBSession.getSession(),fname);DBSession.commit();request.setAttribute("userInfo",userForm);Logs.getLogger().info("end Action: UserBaseInfoAction.getSingleUserInfo()"); 기록 할 곳 에서 Logs. getLogger () 를 사용 하여 이 log 인 스 턴 스 를 얻 은 다음 에 그의 방법 (info, debug, error 등) 을 호출 합 니 다. Log4j 의 실현 방법 은 비슷 합 니 다. 초기 화 클래스 는 이렇게 쓸 수 있 습 니 다.
package myb.hi.core.log;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Logs {
private static Logger log logger;
/**
* Define a static Log variable,
*/
static{
try{
logger=Logger.getLogger(LogInit.class);
// DOMConfigurator.configure("E:/study/log4j/log4j.xml");// .xml
// PropertyConfigurator.configure("log4j.properties");// .properties
// }catch(Exception ex){
System.out.println("can't init the Logger, caused by: "+ex);
}
}
/**
* Get the log object
*
* @return Log
*/
public static Logger getLogger(){
return logger;
}
}
응용 프로그램의 호출 은 완전히 같다.
log4j. properties 파일 에서 logger 가 정의 하 는 로그 단 계 는 appender 와 다 를 수 있 습 니 다.logger 를 정의 할 때 로그 단 계 를 최대한 낮 게 쓰 십시오.appender 에서 로그 단 계 를 정의 할 때 필요 에 따라 쓸 수 있 습 니 다.예 를 들 어 하나의 logger, log4j. rootLogger = DEBUG, CONSOLE, A1 을 DEBUG 로 정의 합 니 다. appender 가 어떻게 정의 하 든 출력 이 있 을 것 입 니 다.log4j. rootLogger = INFO, CONSOLE, A1 을 INFO 로 정의 하면 appender 의 정 의 는 그 보다 높 아야 합 니 다. appender 가 DEBUG 로 정의 하면 출력 되 지 않 습 니 다. 마찬가지 로 프로그램 에서 logger 를 호출 할 때 호출 하 는 방법 등급 도 logger 가 정의 하 는 등급 보다 높 아야 출력 이 있 습 니 다.예 를 들 어 log4j. rootLogger = INFO, CONSOLE, A1 은 INFO 로 정의 되 고 프로그램 에서 Logs. getLogger (). info () 방법 은 출력 할 수 있 습 니 다.Logs. getLogger (). debug () 방법 은 출력 되 지 않 습 니 다. 로그 파일 출력 경로경 로 를 지정 하지 않 으 면 로그 파일 은 실행 디 렉 터 리, 즉 서버 의 bin 디 렉 터 리 에 출력 됩 니 다. 예 를 들 어 아래: log4j. appeender. A1. File = SampleMessages. log4j 응용 서버 가 tomcat 를 사용한다 고 가정 하면 SampleMessages. log4j 파일 은 tomcat 에 디 렉 터 리 를 설치 한 bin 하위 디 렉 터 리 에 있 습 니 다.로그 파일 을 통일 적 으로 저장 하기 위해 서 는 절대 경로 나 상대 경 로 를 사용 하 십시오. 예 를 들 어 아래: log4j. appender. A1. File =.. / logs / SampleMessages. log4j 와 같은 로그 파일 은 tomcat 의 logs 디 렉 터 리 에 놓 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 파일 압축 및 압축 풀기파일 의 간단 한 압축 과 압축 해 제 를 실현 하 였 다.주요 테스트 용 에는 급 하 게 쓸 수 있 는 부분 이 있 으 니 불편 한 점 이 있 으 면 아낌없이 가르쳐 주 십시오. 1. 중국어 문 제 를 해 결 했 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.