1.1.1 gradle 프로젝트일때 build.gradle 파일의 dependencies 안에 해당 코드 추가
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.32'
implementation 'ch.qos.logback:logback-classic:1.2.10'
}
1.1.2 maven 프로젝트일때 (생략)
1.2 [프로젝트]/src/main/resources 경로에 logback.xml 파일 추가
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 롤링 파일 애펜더 -->
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 기본 로그 파일 위치 지정 (사용되지 않지만, 초기 파일 위치 설정을 위해 필요) -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 파일 이름 패턴 변경 및 저장 위치 지정 -->
<fileNamePattern>/home/ubuntu/logme/tomcat8.5/logs/프로젝트명.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 최대 30일 보관 -->
<maxHistory>30</maxHistory>
<!-- 시작 시 오래된 로그 파일 정리 -->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="ROLLING" />
</root>
</configuration>
1.3 java 파일에 테스트할 로그 작성
객체생성
Logger logger = LoggerFactory.getLogger(""); // 로그 메시지 객체 생성
메소드 작성
@GetMapping("/test/{str}")
public ResponseEntity<ResVO> test(@PathVariable String str) throws Exception
{
System.out.println("test : " + str);
long sTime = System.currentTimeMillis();
ResVO result = new ResVO();
result.setResultcode(LogmeCode.proc_ok_num);
long eTime = System.currentTimeMillis();
System.out.println("소모시간(ms) : " + (eTime - sTime));
String logStr = "Test logback level : ";
logger.trace(logStr+"trace");
logger.debug(logStr+"debug");
logger.info(logStr+"info");
logger.warn(logStr+"warn");
logger.error(logStr+"error");
if(result.getResultcode() != LogmeCode.proc_ok_num)
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(result);
else
return ResponseEntity.status(HttpStatus.OK).body(result);
}
1.4 배포 후 server 단 tomcat/logs안에 존재하는 로그 파일 생성 및 내용 확인

