본문 바로가기
코딩도전기/CLOUD

AWS - log 파일 만들기 / 파일 업로드

by 코도꼬마 2023. 5. 25.

log 파일 만들기

 

  • src/main/resources 밑에 있는 log4j.xml에서 설정

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<!-- 
	%d : 로그의 기록 시간을 출력
	%p : 로그 레벨을 출력
	%F : 로그가 발생한 프로그램 파일명 출력
	%M : 로그가 발생한 메서드명 출력
	%l : 로그가 발생한 호출지의 정보를 출력
	%L : 로그가 발생한 호출지의 라인을 출력
	%t : 로그가 발생한 thread의 정보를 출력
	%c : 로그가 발생한 카테고리(패키지)의 정보를 출력
	%C : 로그가 발생한 클래스의 정보를 출력
	%m : 로그 메시지 출력
	%n : 개행문자(줄바꿈)
	%% : % 출력
	%r : 앱 실행 후 로깅이 발생한 시점까지 걸린시간(ms)
 -->

	<!-- Appenders -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<!-- INFO : kr.co.gudi.controller.BoardController - list call -->
			<!-- %-5 : 좌측 정렬 5자가 안되면 나머지는 공백으로 채움 -->
			<!-- <param name="ConversionPattern" value="%-5p: %c - %m%n" /> -->
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss, SSS} %-5p: %c %L - %m%n" />
		</layout>
	</appender>
	
	
	
	<!-- 
		.yyyy-MM : 매달 첫번째 날에 로그파일 변경
		.yyyy-ww : 매주 시작 시 로그파일 변경
		.yyyy-MM-dd : 매일 자정 로그파일 변경
		.yyyy-MM-dd-a : 매일 자정과 정오에 로그파일 변경
		.yyyy-MM-dd-HH : 매시간 로그파일 변경
		.yyyy-MM-dd-HH-mm : 매분 로그파일 변경
	 -->
	
    <!-- log 파일 생성 설정 / 아래 root에서도 appender 추가해주어야함-->
	<!-- Appenders -->
	<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
    	<!-- 파일 저장 경로 설정 -->
		<param name="File" value="/usr/local/tomcat/logs/spring.log" />
		<!-- 파일을 특정 날짜 조건대로 rolling 하기 위한 옵션 -->
		<param name="DatePattern" value=".yyyy-MM-dd-HH" />
		<layout class="org.apache.log4j.PatternLayout">
			<!-- INFO : kr.co.gudi.controller.BoardController - list call -->
			<!-- %-5 : 좌측 정렬 5자가 안되면 나머지는 공백으로 채움 -->
			<!-- <param name="ConversionPattern" value="%-5p: %c - %m%n" /> -->
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss, SSS} %-5p: %c %L - %m%n" />
		</layout>
	</appender>
	
	
	
	<!-- Application Loggers -->
	<!-- 로거를 찍어줄 패키지 영역 -->
	<!-- trace > debug > info(일반적 정보) > warn > fatal(심각) -->
	<logger name="kr.co.gudi">
		<level value="info" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<!-- Root Logger -->
	<root>
		<priority value="warn" />
		<appender-ref ref="console" />
		<!-- appender 추가 -->
		<appender-ref ref="file" />
	</root>
	
</log4j:configuration>

 

  • putty에서 log 파일 존재 확인
docker exec -it tomcat /bin/bash
cd webapps
cd ../logs
ls # spring.log 존재 확인

 

  • log가 정상적으로 찍히는지 확인(마지막 한페이지 정도만 출력)
tail -f spring.log
# ctrl + c로 빠져나오기

 

 

 

파일 업로드

  • 소스코드에서 파일 저장 경로 변경
Path path = Paths.get("/usr/local/tomcat/webapps/upload/"+newFileName);

 

  • putty에서 서버에 upload 폴더 생성
mkdir upload
ls # 확인

 

  • server.xml 수정하기(다른 키 누르지 않도록 주의 / 마우스 사용x)
docker exec -it tomcat /bin/bash
# 에디터 수정
apt-get update
apt-get install vim

# sercer.xml에 아래 내용 추가
<Context docBase="/usr/local/tomcat/webapps/upload" path="/photo"/>

cd conf
vim server.xml
O -> 편집모드
esc -> :wq # 저장 후 종료
esc -> :q! # 저장하지 않고 종료

exit
docker restart tomcat

'코딩도전기 > CLOUD' 카테고리의 다른 글

AWS - Docker / MariaDB / Tomcat 설치  (0) 2023.05.23
AWS - Amazon Web Service(인스턴스 시작)  (0) 2023.05.22