π[Spring] slf4jμ logback.
1οΈβ£ slf4j
-
'SLF4J(Simple Logging Facade for Java)'
λ Java μ ν리μΌμ΄μ μμ λ‘κ·Έ κΈ°λ‘μ μ½κ² κ΄λ¦¬νκ³ λ€λ₯Έ λ‘κΉ νλ μμν¬μ ν΅ν©ν μ μλλ‘ λμμ£Όλ λ‘κΉ μΈν°νμ΄μ€μ λλ€. -
'SLF4J'
λ λ€μν λ‘κΉ νλ μμν¬(e.g, Log4j, Logback, java.util.logging λ±)μ λν΄ κ³΅ν΅λ μΈν°νμ΄μ€λ₯Ό μ 곡νμ¬ κ°λ°μκ° νΉμ λ‘κΉ νλ μμν¬μ μ’ μλμ§ μκ³ μ μ°νκ² λ‘κ·Έλ₯Ό κ΄λ¦¬ν μ μλλ‘ ν©λλ€.
1οΈβ£ slf4jμ μ£Όμ κΈ°λ₯.
-
-
λ‘κΉ
νλ μμν¬μμ μΆμν
- slf4jλ μ¬λ¬ λ‘κΉ νλ μμν¬μ μ’ μλμ§ μκ² ν©λλ€.
- μλ₯Ό λ€μ΄, μ½λμμ slf4j μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ©΄ λμ€μ λ‘κΉ νλ μμν¬λ₯Ό μ½κ² κ΅μ²΄ν μ μμ΅λλ€.
-
λ‘κΉ
νλ μμν¬μμ μΆμν
-
-
λ‘κΉ
μ±λ₯ μ΅μ ν
- slf4jλ λ¬Έμμ΄ λ³ν©μ λ°λ₯Έ μ±λ₯ λ¬Έμ λ₯Ό νΌν μ μλλ‘ μ§μν©λλ€.
- μλ₯Ό λ€μ΄, slf4jλ λ‘κ·Έ λ©μμ§μ λ¬Έμμ΄ κ²°ν©μ μ§μ°μμΌ, λ‘κ·Έκ° μ€μ λ‘ κΈ°λ‘λ λλ§ κ²°ν©μ΄ λ°μνλλ‘ ν©λλ€.
-
λ‘κΉ
μ±λ₯ μ΅μ ν
-
-
API μΌκ΄μ±
- slf4jλ₯Ό μ¬μ©νλ©΄ λ‘κΉ μ μν μΌκ΄λ APIλ₯Ό μ 곡λ°μ μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λ‘κΉ μ νμ€νν μ μμ΅λλ€.
-
API μΌκ΄μ±
2οΈβ£ μ¬μ© λ°©λ².
- slf4jλ₯Ό μ¬μ©νκΈ° μν΄μλ, μ°μ slf4j μΈν°νμ΄μ€μ μ΄λ₯Ό ꡬνν λ‘κΉ
νλ μμν¬(μ: Logback)λ₯Ό νλ‘μ νΈμ ν¬ν¨μμΌμΌ ν©λλ€.
- μ½λλ μΌλ°μ μΌλ‘ μλμ κ°μ΄ μ¬μ©λ©λλ€.
```java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
- μ½λλ μΌλ°μ μΌλ‘ μλμ κ°μ΄ μ¬μ©λ©λλ€.
public class MyClass {
// Logger μμ±
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
public void doSomthing() {
// λ‘κ·Έ λ©μμ§ κΈ°λ‘
logger.info("This is an info message");
logger.debug("This is a debug message");
} } ``` - μ΄ μ½λλ **`'slf4j'`** λ₯Ό μ΄μ©ν΄ λ‘κ·Έλ₯Ό κΈ°λ‘νλ μλ‘, λ‘κΉ
λ©μμ§λ μ€μ λ λ‘κΉ
νλ μμν¬λ₯Ό ν΅ν΄ μΆλ ₯λ©λλ€.
βοΈ μμ½.
- slf4jλ Java μ ν리μΌμ΄μ
μμ λ‘κΉ
νλ μμν¬ κ°μ μΆμν λ μ΄μ΄λ₯Ό μ 곡νλ©°, μ½λκ° νΉμ λ‘κΉ
νλ μμν¬μ μ’
μλμ§ μλλ‘ ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ μ μ°ν λ‘κΉ κ΄λ¦¬κ° κ°λ₯ν΄μ§λλ€.
2οΈβ£ logback
-
'logback'
μ Java μ ν리μΌμ΄μ μμ μ¬μ©λλ κ³ μ±λ₯ λ‘κΉ νλ μμν¬λ‘, slf4jμ κΆμ₯ ꡬν체 μ€ νλμ λλ€. -
'logback'
μ slf4jλ₯Ό ν΅ν΄ μ κ·Όν μ μμΌλ©°, λ°μ΄λ μ±λ₯κ³Ό μ μ°ν μ€μ , λ€μν κΈ°λ₯μ μ 곡νλ κ²μ΄ νΉμ§μ λλ€.
1οΈβ£ logbackμ μ£Όμ κ΅¬μ± μμ.
-
-
Logback Classic
- slf4jμ μ§μ ν΅ν©λλ logbackμ ν΅μ¬ λͺ¨λμ λλ€.
-
'Logback Classic'
μ Java μ ν리μΌμ΄μ μμ λ‘κΉ κΈ°λ₯μ μννλ©°, λ€μν λ‘κ·Έ λ 벨(INFO, DEBUG, WARN, ERROR λ±)μ μ§μν©λλ€.
-
Logback Classic
-
-
Logback Core
- Logback Classicκ³Ό Logback Access(μΉ μ ν리μΌμ΄μ μ©)λ₯Ό κΈ°λ°μΌλ‘ νλ μΌλ°μ μΈ λ‘κΉ κΈ°λ₯μ μ 곡ν©λλ€.
-
'Logback Core'
λ Appender, Layout, Filter λ±κ³Ό κ°μ κΈ°λ³Έ κ΅¬μ± μμλ₯Ό ν¬ν¨ν©λλ€.
-
Logback Core
-
-
Logback Access
- μΉ μ ν리μΌμ΄μ μμ HTTP μμ²κ³Ό μλ΅μ λ‘κΉ ν μ μλλ‘ μ§μνλ λͺ¨λμ λλ€.
- μ£Όλ‘ Java Servlet νκ²½μμ μ¬μ©λ©λλ€.
-
Logback Access
3οΈβ£ logbackμ νΉμ§.
-
-
λμ μ±λ₯
-
'logback'
μ λΉ λ₯Έ λ‘κΉ μ±λ₯μ μ 곡νλ©°, νΉν λκ·λͺ¨ μ ν리μΌμ΄μ μμ ν¨κ³Όμ μ λλ€.
-
-
λμ μ±λ₯
-
-
μ μ°ν ꡬμ±
-
'logback'
μ XML λλ Groovy μ€ν¬λ¦½νΈλ‘ λ‘κΉ μ€μ μ ꡬμ±ν μ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ λ€μν 쑰건μ λ°λΌ λ‘κΉ λμμ μΈλ°νκ² μ μ΄ν μ μμ΅λλ€.
-
-
μ μ°ν ꡬμ±
-
-
μ‘°κ±΄λΆ λ‘κΉ
-
'logback'
μ νΉμ 쑰건μμλ§ λ‘κΉ μ μννλλ‘ μ€μ ν μ μμ΄, λΆνμν λ‘κ·Έ κΈ°λ‘μ μ€μ΄κ³ μ±λ₯μ μ΅μ νν μ μμ΅λλ€.
-
-
μ‘°κ±΄λΆ λ‘κΉ
-
-
μ΄μ λ‘κ·Έ νλ μμν¬μμ νΈνμ±
-
'logback'
μ κΈ°μ‘΄μ'Log4j'
μ€μ νμΌμ μ¬μ©ν μ μλ κΈ°λ₯μ μ 곡νμ¬, κΈ°μ‘΄'Log4j'
μ¬μ©μκ° μ½κ²'logback'
μΌλ‘ μ νν μ μλλ‘ λμ΅λλ€.
-
-
μ΄μ λ‘κ·Έ νλ μμν¬μμ νΈνμ±
-
-
λ€μν μΆλ ₯ νμ
-
'logback'
μ μ½μ, νμΌ, μ격 μλ², λ°μ΄ν°λ² μ΄μ€ λ± λ€μν μΆλ ₯ λμμΌλ‘ λ‘κ·Έλ₯Ό κΈ°λ‘ν μ μμΌλ©°, μΆλ ₯ νμμ μμ λ‘κ² μ μν μ μμ΅λλ€.
-
-
λ€μν μΆλ ₯ νμ
4οΈβ£ logback μ¬μ© μμ .
<configuration>
<!-- μ½μμ λ‘κ·Έλ₯Ό μΆλ ₯νλ Appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- νμΌμ λ‘κ·Έλ₯Ό κΈ°λ‘νλ Appender -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>mylog.log</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- λ£¨νΈ λ‘κ±° μ€μ -->
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-red red="FILE" />
</root>
</configuration>
- μ΄ μμλ μ½μκ³Ό νμΌμ λ‘κ·Έλ₯Ό μΆλ ₯νλλ‘ μ€μ νλ κ°λ¨ν μμμ
λλ€.
- logbackμ μ΄μΈμλ 볡μ‘ν μꡬ μ¬νμ μΆ©μ‘±ν μ μλ λ€μν κΈ°λ₯μ μ 곡νκ³ μμ΅λλ€.
βοΈ μμ½.
- logbackμ Java μ ν리μΌμ΄μ μμ μ¬μ©λλ κ³ μ±λ₯ λ‘κΉ νλ μμν¬λ‘, slf4jμ ν¨κ» μ¬μ©λ©λλ€.
- logbackμ μ μ°ν μ€μ κ³Ό λμ μ±λ₯, λ€μν κΈ°λ₯μ΄ μμ΅λλ€.