SLF4J logging
0. 다양한 로그처리 방법
- commons logging
- log4j
- java util logging
- logback
1. Simple Logging Facade for Java(SLF4J)
- 배포 시점에 여러가지 logging 프로그램 중 하나를 적용할 수 있게 하는 Facade
※ Facade pattern: 어떠한 서브 시스템에 대한 간단한 인터페이스를 제공하기 위한 용도
client와 복잡한 서브 시스템을 분리해주는 역할
서브 시스템들을 통합해주는 역할은 하지만 서브 시스템을 캡슐화하지는 않음
1) pom.xml(maven framework)에 기술하여 사용 (사용하려는 버전에 맞게 의존성 주입)
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency>
|
※ SLF4J만 추가하면 구현체가 없다 내용의 메시지와 함께 오류가 발생하여 로그를 확인할 수가 없음
예) SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4Jaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes/html#/StaticLogger Binder for further details.
<dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
|
→ 따라서, SLF4J logger 인터페이스를 구현한 logback을 추가해서 사용해야 함
2) slf4j-api-xxx.jar, logback-classic.jar, logback-core.jar 파일을 빌드패스에 추가하여 사용
int test1 = 33; int test2 = 77; logger.info("test1은 {}, test2는 {} 이다.", a, b);
|
→ 로그 출력 결과: test1은 33, test2는 77이다.