티스토리 뷰
로그기록(logback이용)
-
log4j를 기반으로 사용하는 로그프레임워크
-
Logger, Appender, Encoder
-
Logger : 로깅담당
-
Appender : 로그가 출력될 대상관리
-
Encore : 특정 형식으로 로그 메시지를 변환하는 역할
-
-
로그레벨
-
ERROR : 일반적인 에러가 발생하는 상황
-
WARN : 경고(에러는 아니지만 주의 필요)
-
INFO : 일반 정보
-
DEBUG : 일반정보를 좀 더 상세히 표현
-
TRACE : 경로추적
-
-
작성방법
-
API추가
-
설정파일작성(logback.xml)
-
적절한 곳에서 로그를 기록할 수 있도록 추가
-
dependency 등록
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
-
src/main/resources 의 기본 파일을 제거하고 logback.xml 생성
< logback.xml >
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration debug="true">
<!-- 변수 정의 -->
<property name="LOG_DIR" value="/log" />
<property name="LOG_PATH_NAME" value="${LOG_DIR}/data.log" />
<!-- 콘솔에 정의 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- 콘솔에 출력되는 로그의 포맷을 정의 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-4level
[%logger.%method:%line]-%msg %n</pattern>
</layout>
</appender>
<!-- 로그파일로 기록 -->
<appender name="LOGFILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 기록될 파일명 -->
<file>${LOG_PATH_NAME}</file>
<!-- <file>/home/hadoop/logs/my-web.log</file> -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>my-web.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 30일지난 파일은 삭제한다. -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4level
[%logger.%method:%line]- %msg %n</pattern>
</encoder>
</appender>
<!-- <logger name="org.springframework" level="INFO" /> <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor"
level="DEBUG" /> <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"
level="WARN" /> -->
<logger name="myweb" additivity="false">
<level value="INFO" />
<appender-ref ref="LOGFILE" />
<appender-ref ref="CONSOLE" />
</logger>
<!-- <root level="DEBUG"> <appender-ref ref="CONSOLE" /> </root> -->
</configuration>
-
컨트롤러, 인터셉터 등 원하는 곳에 로그 삽입
-
컨트롤러 예시
@RequestMapping("/product/read.do")
public ModelAndView productRead(String prd_no, Model model,
HttpServletRequest req) {
logger.info("상품페이지에 접속함:" + prd_no+",접속한IP : "
+req.getRemoteAddr()+",접속시간 : "+new Date().toString()
+",요청구분:A요청,path:요청path분석하고 싶은 path나 각종 데이터");
ModelAndView mav = new ModelAndView();
ProductVO product = service.read(prd_no);
mav.setViewName("product/read");
mav.addObject("product", product);
mav.addObject("prd_no", prd_no);
return mav;
}
-
실행 (c:/log/data.log 파일 생성)
'Spring' 카테고리의 다른 글
Interceptor를 통한 로그인 처리 (0) | 2020.10.20 |
---|---|
Gradle-Spring Project #4 - 회원 서비스 (0) | 2020.10.10 |
Gradle-Spring Project #3 - 도메인, 리포지토리, 테스트 케이스 (0) | 2020.10.06 |
Gradle-Spring Project #2 - 정적 컨텐츠, MVC-템플릿, API (0) | 2020.10.04 |
Gradle-Spring Project #1 - 프로젝트 환경설정 (0) | 2020.10.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Flume
- 하둡
- File Protection
- HDFS
- mapreduce
- oracle
- SPARK
- RAID Architecture
- Disk System
- Replacement Strategies
- gradle
- maven
- Variable allocation
- 빅데이터 플랫폼
- Free space management
- springboot
- 빅데이터
- Spring
- hadoop
- SQL
- Java
- Disk Scheduling
- vmware
- aop
- jdbc
- linux
- I/O Services of OS
- I/O Mechanisms
- JSON
- Allocation methods
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함