아파치에서 다운받아서 설정하는 법과 Maven을 이용하는 방법이 있다. 이클립스 내부에는 이미 Maven 기능이 적용되어 있기 때문에 이클립스 사용자는 사용만 하면됨!
💡 Maven 사용법
1. 필요한 library 파악하기
2. maven project로 변환해서 설정 파일 편집하기
3. pom.xml이라는 파일에 library 정보를 설정
4. 다운로드 받은 library 사용
1. 프로젝트에서 오른쪽 클릭하고 Convert to Maven Project클릭해서 maven project로 변환
2. 변환하면 pom.xml 생성
3. add에서 log4j : 1.2.14 검색해서 다운받기
검색 안될 경우 참고
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>playdata</groupId>
<artifactId>step04_maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
</project>
# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=info, CONSOLE, daily
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p (%F:%L) - %m%n
log4j.appender.daily=org.apache.log4j.DailyRollingFileAppender
log4j.appender.daily.File=C:\\20210628_lab\\88.log\\playdata.log
log4j.appender.daily.DatePattern='.'yyyy-MM-dd
log4j.appender.daily.layout=org.apache.log4j.PatternLayout
log4j.appender.daily.layout.ConversionPattern=%d %5p (%F:%L) - %m%n
#log4j.appender.daily.layout.ConversionPattern=- %F %m%n
log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개 로그 레벨을 가지고 있다. 설정 파일에 대상별(자바에서는 패키지)로 레벨을 지정이 가능하고 그 등급 이상의 로그만 저장하는 방식
trace < debug < info < warn < error
ex) info 설정시 info 이상의 모든 레벨 실행
package log4jtest;
import org.apache.log4j.Logger;
public class LogTest {
//메소드의 parameter로 package명.class명을 적용해서 해당 class에서 로그 기록
static Logger logger = Logger.getLogger("log4jtest.LogTest");
// id를 검증하는 로직의 메소드라 가정 - id가 master가 아니라면 warn 메세지
//id가 master라면 관리자에게 "master로그인 했다"라는 메세지
public static void loginCheck(String id) {
if(id.equals("master")){
logger.trace("trace - master 로그인");
logger.debug("debug - master 로그인");
logger.info("info - master 로그인");
logger.warn("warn - master 로그인");
logger.error("error - master 로그인");
}else {
logger.warn("warn - user가 잘못 입력");
}
}
public static void main(String[] args) {
loginCheck("master");
}
}