[국비학원 기록/Spring] 메이븐(Maven), 스프링 log4j 정리
my code archive
article thumbnail
반응형
Maven

1. Maven

 

1)라이브러리 관리 + 빌드 툴


2)프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴


3)편리한 Dependent Library 관리
 -의존성 라이브러리 관리(pom.xml)
 

4)프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있음


5)여러 프로젝트에서 프로젝트 정보나 jar 파일들을 공유하기 쉬움


6)빌드 프로세스를 일관되게 가져갈 수 있음


7)프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉토리 구조를

  처음부터 일괄된 형태로 구성하여 관리할 수 있음.

 =>오픈 소스 라이브러리들은 컴파일 할 때 합쳐져 하나의 기능을 이룸
 =>컴파일보다 더 많은 과정을 거치게됨.
 =>이런 과정을 빌드라고 하고 이런 작업을 자동으로 수행해주는 툴
 =>Ant, Maven, Gradle 등

 

2. pom.xml

 

1)Maven 프로젝트를 생성하면 pom.xml 파일이 생성됨

2)Project Object Model 정보를 담고 있음.

 

수업 시간에 pom.xml에 추가한 내용

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!-- 데이터소스 관련 라이브러리 -->
        <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
            <version>1.8.0</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2</version>
            <scope>test</scope>
        </dependency>
        
        <!-- 마이바티스 관련 라이브러리 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        
        <!-- 로컬에 설치한 오라클 드라이버 라이브러리 설정 
            <systemPath> : 로컬에 설치한 위치를 지정함
            ${basedir} : 프로젝트 루트 디렉토리임.
        -->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>18.3.0.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc8.jar</systemPath>
        </dependency>
        
        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
        
        <!-- 타일즈 관련 라이브러리 -->
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-servlet</artifactId>
            <version>2.2.2</version>
        </dependency>
cs

 

필요한 라이브러리를

https://mvnrepository.com/

이곳에서 검색한 후

원하는 버전을 클릭한 다음

저 내용을 복사해서 pom.xml에 추가해주면 자동으로 다운받아짐!!

 

3. log4j

 

1)로그 기능을 제공하는 오픈 소스 라이브러리

 

2)애플리케이션에서 웹 사이트에 접속한 사용자 정보나 각 클래스의

  메서드 호출 시각 등 여러 가지 정보를 로그로 출력하여 관리

 

3)메이븐에서 프로젝트 생성 시 자동으로 log4j 라이브러리가 설치됨!

 

4) log4j 태그 종류

log4j 태그 종류
<appender> -로그의 출력 위치 결정(콘솔, 파일, DB)
-XXXApender로 끝나는 클래스들을 보면
 출력 위치 알 수 있음.
<layout> -<appender>가 어떤 형식으로 출력할지
 출력 레이아웃을 결정
<logger> -로깅 메시지를 appender에 전달함.

 

5)Appender 클래스

Appender 클래스
ConsoleAppender 콘솔에 로그 메시지를 출력함
FileAppender 로그 메시지를 지정 파일에 기록함
RollingFileAppender 파일 크기가 일정 수준 이상이 되면
기존 파일을 백업, 처음부터 다시 기록함
DailyRollingAppender 일정 기간 단위로 로그 파일을
생성하고 기록함.

 

6)PatternLayout 클래스에서 사용되는 여러 가지 출력 속성들

속성 의미
%p trace, debug, info, warn, error, fatal 등 로그 레벨 이름 출력
%m 로그 메시지 출력
%d 로깅 이벤트 발생 시각 출력
%F 로깅이 발생한 프로그램 파일 이름 출력
%I 로깅이 발생한 caller의 정보 출력
%L 로깅이 발생한 caller의 라인 수 출력
%M 로깅이 발생한 method 이름 출력
%c 로깅 메시지 앞에 전체 패키지 이름이나 전체 파일 이름 출력

 

7)log4j 로그 레벨

log4j의 로그 레벨들
FATAL  - 시스템 차원에서 심각한 문제가 발생해 애플리케이션
  작동이 불가능한 경우에 해당하는 레벨임.
- 일반적으로 애플리케이션에서는 사용할 일이 없음.
ERROR  - 실행 중 문제가 발생한 상태를 나타냄.
WARN  - 향후 시스템 오류의 원인이 될수 있는 경고 메시지를 나타냄
INFO   - 로그인, 상태 변경과 같은 실제 애플리케이션 운영과 관련된 정보 메시지를 나타냄.
DEBUG  - 개발 시 디버깅 용도로 사용한 메시지를 나타냄 
TRACE  - DEBUG 레벨보다 상세한 로깅 정보를 출력하기 위해 도입된 레벨임

log4j.xml

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
32
33
34
35
36
37
38
39
40
41
<?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="kr.co.ezen07">
        <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>
cs
반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형