[java] SLF4J를 사용하여 로깅 메시지를 파일로 저장하는 방법은 무엇인가요?
  1. SLF4J 라이브러리를 프로젝트에 추가합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가합니다:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.32</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.6</version>
    </dependency>
    

    Gradle을 사용하는 경우, build.gradle 파일에 다음 종속성을 추가합니다:

    implementation 'org.slf4j:slf4j-api:1.7.32'
    implementation 'ch.qos.logback:logback-classic:1.2.6'
    
  2. logback.xml이라는 파일을 프로젝트의 리소스 디렉토리에 만듭니다. 이 파일은 Logback 설정을 정의하는 데 사용됩니다. 아래는 기본적인 logback.xml 파일의 예입니다:

    <configuration>
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <file>/path/to/logfile.log</file>
            <encoder>
                <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
            </encoder>
        </appender>
        <root level="info">
            <appender-ref ref="FILE" />
        </root>
    </configuration>
    

    <file> 요소의 값을 원하는 로그 파일의 경로로 변경해야 합니다.

  3. Java 코드에서 SLF4J 로거를 사용하여 로깅 메시지를 남길 수 있습니다. 예를 들어:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class MyClass {
        private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
    
        public void myMethod() {
            logger.info("This is an info message");
            logger.warn("This is a warning message");
            logger.error("This is an error message");
        }
    }
    

    LoggerFactory.getLogger() 메서드의 인자로는 로깅을 수행하는 클래스의 클래스 객체가 전달되어야 합니다.

이렇게 설정하고 코드에서 SLF4J 로거를 사용하면 로깅 메시지가 지정한 파일에 저장됩니다. 로그 레벨을 변경하여 어떤 종류의 로그를 파일로 기록할지 결정할 수 있습니다. 추가적인 로그백(Logback) 설정에 대해서는 Logback 문서를 참조하십시오.