✏️ Cloud Watch
- 클라우드 워치는 AWS 에서 재공하는 log 보관 서비스로 로그를 효율적으로 관리하고,
조회할 수 있도록 도와주는 서비스이다.
📍 권한 추가

✏️ 적용하기
📍 dependency
implementation'ca.pjer:logback-awslogs-appender:1.6.0'
📍 Logback 설정파일 생성
- 생성한 log 는 logback.xml 파일을 생성해 발생한 log 를 문서로 저장할 수 있다.
- 나는 커스텀 하기위해 logback-spring.xml 로 resources 하위에 만들었다.
- accsess key 는 AWS 에서 발급받은 값을 입력해주면 된다.
- 프로필이 prod 상태일 때만 설정파일이 실행되도록 설정했다.
- 🔗 XML 객체 설명
<?xml version="1.0" encoding="UTF-8"?>
<configuration packagingData="true">
<timestamp key="timestamp" datePattern="yyyy-MM-dd-HH-mm-ssSSS"/>
<appender name="aws_cloud_watch_log" class="ca.pjer.logback.AwsLogsAppender">
<layout>
<pattern>[%thread] [%date] [%level] [%file:%line] - %msg%n</pattern>
</layout>
<logGroupName>로그 그룹 이름</logGroupName>
<logStreamUuidPrefix>로그 스트림 이</logStreamUuidPrefix>
<logRegion>ap-northeast-2</logRegion>
<maxBatchLogEvents>50</maxBatchLogEvents>
<maxFlushTimeMillis>30000</maxFlushTimeMillis>
<maxBlockTimeMillis>5000</maxBlockTimeMillis>
<retentionTimeDays>0</retentionTimeDays>
<accessKeyId>${AWS_ACCESS_KEY}</accessKeyId>
<secretAccessKey>${AWS_SECRET_KEY}</secretAccessKey>
</appender>
<property name="CONSOLE_LOG_PATTERN" value="%highlight(%-5level) %date [%thread] %cyan([%C{0} :: %M :: %L]) - %msg%n"/>
<appender name="console_log" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="console_log"/>
</root>
</springProfile>
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="aws_cloud_watch_log"/>
</root>
</springProfile>
</configuration>
📍 환경변수 추가
- xml 파일의 민감정보를 환경변수를 통해 배포서버가 실행되도록 추가해주면 된다.
-e AWS_ACCESS_KEY= 엑세스키
-e AWS_SECRET_KEY= 시크릿키