일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spring crud
- jsp 날짜팝업
- 프로그래머스 쿼리문
- 프로그래머스 MYSQL
- 자바 정규표현식 예제
- 정보처리기사실기정리
- 자바배열예제
- 스프링게시판만들기
- 정처기실기정리
- jsp게시판만들기
- 자바연산자
- 스프링 crud
- 오버라이딩
- 스프링 CRUD게시판
- 2020정보처리기사실기정리
- 게시판만들기
- 날짜지정팝업
- crud게시판
- 프로그래머스 SQL
- CRUD게시판만들기
- spring crud게시판
- jsp 팝업띄우기
- 오라클설치
- 자바기초
- 2020정보처리기사실기
- PLSQL
- html기초
- Oracle기초
- 2020정보처리기사실기요약
- js datepicker
Archives
- Today
- Total
영보의 SystemOut.log
[Spring] log4j 로그 남기기 및 설정 본문
반응형
log4j 란 무엇인가?
- Java 기반의 Loggin Utility로 Apache에서 만든 오픈소스 라이브러리
- 옵션을 통해 선택적으로 log를 남기거나 특정 파일에 log를 생성하는 등 다양한 장점
- SQL문이 어떤 값을 가져오고 담겨오는지 찍히고, system.out.printl()이 불필요함 → 개발시 편리함
log4j 설정하기
# pom.xml
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.lazyluke</groupId>
<artifactId>log4jdbc-remix</artifactId>
<version>0.2.7</version>
</dependency>
- 없으면 추가하고, 이미 추가되어있으면 안해도된다.
# web.xml
<!-- log4J -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
- log4jRefreshInTterval을 세팅하면 log4j.xml에서 level이나 로그출력 패턴 변경을 하면 자동 리프레쉬 된다.
# 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/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="com.sist.web">
<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="info" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
# Controller.java
package com.sist.web;
import com.sist.dao.*;
import java.text.AttributedCharacterIterator;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@Controller
@RequestMapping("board/")
public class BoardController {
protected static final Logger logger = LoggerFactory.getLogger(BoardController.class);
protected static final Logger filelogger = LoggerFactory.getLogger("fileLogger");
public static void main(String[] args) {
logger.info("BoardController");
filelogger.info("fileLogger logeer print");
}
@Autowired
private BoardDAO dao;
private AttributedCharacterIterator session;
- 기본 Controller에서 빨강 박스 부분만 본인 프로젝트 속성에 맞게 추가해서 넣어주면 된다.
log4j 실행하기
- 디버깅을 하면 저렇게 뜬다. 사이트에서 이기능 저기능 사용할 때마다 로그와 쿼리문이 뜬다.
- 디비에 값을 가져오는지, 안가져오는지를 바로 볼 수 있어서 한번 설정하면 편하고 효율적인 유지보수가 가능하다.
반응형
'Spring' 카테고리의 다른 글
[Spring] CRUD 게시판 만들기 - Spring MVC구조와 동적쿼리 사용(with IntelliJ, MySQL) -2 (0) | 2021.01.22 |
---|---|
[Spring] CRUD 게시판 만들기 - Spring MVC구조와 동적쿼리 사용(with IntelliJ, MySQL) -1 (0) | 2021.01.22 |
[spring] STS/MySQL - MVC 구조로 리스트 출력하기 (0) | 2021.01.19 |
[spring] STS과 Mysql로 CRUD 게시판 만들기-(2) (0) | 2021.01.19 |
[spring] STS과 Mysql로 CRUD 게시판 만들기-(1) (0) | 2021.01.19 |