System.out.println() 으로 로그를 찍는 방법과 로깅툴을 사용하는 방법의 성능은 천지차이이다.
System.out.println() 을 사용할때와 SLF4J 를 사용할때는 성능과 속도면에서 수십배의 차이가 생긴다.
간단한 시스템이라면 몰라도 조금만 규모가 커지면 서버가 감당해야 할 스트레스가 굉장히 커진다.
(로깅의 가독율이나 효율은 둘째 치고서라도.)
사용방법은
먼저 라이브러리를 추가한뒤 소스상에서,
를 추가한다.
log4j.properties 파일을 생성한 뒤 WEB-INF/classes 디렉토리 밑에 둔다.
log4j.properties 의 예)
나같은 경우는 소스상에서 정의한 info 이외에 시스템에서 발생하는 DEBUG 급의 메시지도 모두 로깅으로 남긴다.
언제 JDBC connection 을 가져왔으며, 어떤 메소드에서 transaction 을 발생시켰는지,
호출된 쿼리문은 어떤것인지 등등 시스템의 상황을 한눈에 파악할 수 있다.
System.out.println() 을 사용할때와 SLF4J 를 사용할때는 성능과 속도면에서 수십배의 차이가 생긴다.
간단한 시스템이라면 몰라도 조금만 규모가 커지면 서버가 감당해야 할 스트레스가 굉장히 커진다.
(로깅의 가독율이나 효율은 둘째 치고서라도.)
사용방법은
먼저 라이브러리를 추가한뒤 소스상에서,
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class GatheringResource {
// SLF4J Logging
private Logger logger = LoggerFactory.getLogger(GatheringResource.class);
logger.info("hello~!");
..........
import org.slf4j.LoggerFactory;
public class GatheringResource {
// SLF4J Logging
private Logger logger = LoggerFactory.getLogger(GatheringResource.class);
logger.info("hello~!");
..........
를 추가한다.
log4j.properties 파일을 생성한 뒤 WEB-INF/classes 디렉토리 밑에 둔다.
log4j.properties 의 예)
### Root Logger로 stout, rolling으로 셋팅
log4j.rootLogger=DEBUG, stout, rolling
#### 콘솔 Log
log4j.appender.stout=org.apache.log4j.ConsoleAppender
#### INFO 이상 레벨에서만 찍는다.
log4j.appender.stout.Threshold=INFO
#### 출력 패턴 설정
log4j.appender.stout.layout=org.apache.log4j.PatternLayout
log4j.appender.stout.layout.ConversionPattern=%-5p at %C{3}.%M(%13F:%L) %3x - %m%n
#### Log File 설정
log4j.appender.rolling=org.apache.log4j.DailyRollingFileAppender
#### Log File 위치
#log4j.appender.rolling.File=D:/log/tobit/tobit.log
log4j.appender.rolling.File=/home/xxxxxxxx/logs/s-platform.log
#### Log File 뒤에 날짜 패턴 추가
log4j.appender.rolling.DatePattern='.'yyyy-MM-dd
#### Log File의 최대 사이즈
#### 300KB 넘을경우 뒤에 _1, _2 숫자가 붙는다.
log4j.appender.rolling.MaxFileSize=300KB
#### Tomcat Restart시 새로쓸껀지 말껀지
#### True 기존파일에 추가
#### #False 새로씀
log4j.appender.rolling.Append=false
#### 출력 패턴 설정
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern=[%d] %-5p at %C{3}.%M(%13F:%L) %3x - %m%n
log4j.rootLogger=DEBUG, stout, rolling
#### 콘솔 Log
log4j.appender.stout=org.apache.log4j.ConsoleAppender
#### INFO 이상 레벨에서만 찍는다.
log4j.appender.stout.Threshold=INFO
#### 출력 패턴 설정
log4j.appender.stout.layout=org.apache.log4j.PatternLayout
log4j.appender.stout.layout.ConversionPattern=%-5p at %C{3}.%M(%13F:%L) %3x - %m%n
#### Log File 설정
log4j.appender.rolling=org.apache.log4j.DailyRollingFileAppender
#### Log File 위치
#log4j.appender.rolling.File=D:/log/tobit/tobit.log
log4j.appender.rolling.File=/home/xxxxxxxx/logs/s-platform.log
#### Log File 뒤에 날짜 패턴 추가
log4j.appender.rolling.DatePattern='.'yyyy-MM-dd
#### Log File의 최대 사이즈
#### 300KB 넘을경우 뒤에 _1, _2 숫자가 붙는다.
log4j.appender.rolling.MaxFileSize=300KB
#### Tomcat Restart시 새로쓸껀지 말껀지
#### True 기존파일에 추가
#### #False 새로씀
log4j.appender.rolling.Append=false
#### 출력 패턴 설정
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern=[%d] %-5p at %C{3}.%M(%13F:%L) %3x - %m%n
나같은 경우는 소스상에서 정의한 info 이외에 시스템에서 발생하는 DEBUG 급의 메시지도 모두 로깅으로 남긴다.
언제 JDBC connection 을 가져왔으며, 어떤 메소드에서 transaction 을 발생시켰는지,
호출된 쿼리문은 어떤것인지 등등 시스템의 상황을 한눈에 파악할 수 있다.
'Development > Management' 카테고리의 다른 글
PayPal 결제 연동 PDT / IPN 정의와 비교. (0) | 2016.09.02 |
---|---|
Cafe24 웹호스팅에서 Server Connection 가져오기. (0) | 2010.06.27 |
Windows XP Pro 에 IIS, FTP Server 구축하기. (0) | 2009.12.15 |
Ubuntu 9.0.4 + JDK1.5 + JBoss 4.2.3 GA + MySQL 5.0 + FTP Server + SSH Server (0) | 2009.10.10 |