티스토리 뷰

스프링

8) 스프링 로그 출력

holy1017 2015. 10. 19. 01:09


2015/10/19 - [스프링] - 8) 스프링 로그 출력

2015/10/15 - [스프링] - 7) 스프링 어노테이션 예제 리포지터리 annotation @Repository ,uikit scrollspy 사용법, c:forEach 사용

2015/10/15 - [스프링] - 6) 어노테이션 예제 서비스 annotation @Service

2015/10/15 - [스프링] - 5) 어노테이션 예제 컨트롤러 annotation @Controller

2015/10/13 - [CSS] - 4) uikit 적용하는 방법, log4j:ERROR Could not parse url 에러 문제

2015/10/13 - [이클립스] - 3) 스프링 프로젝트 index.html defult.jsp 파일..? 톰캣 web.xml 설정

2015/10/12 - [스프링] - 2) 스프링 프로젝트 폴더 파일 구조 분석

2015/10/12 - [스프링] - 1) 스프링 프로젝터 생성하기



http://holy1017.tistory.com/37 에서 쓰던 프로젝트를 그대로 쓴다

그리고 이번엔 http://addio3305.tistory.com/43 에서 하는 예제를 최대한 그대로 갇다 쓸것이다.

외냐면 로그 한번 설정해놓고 잊어버리거든;;

매 프로젝트마다 저글 보고 따라한다;;

아무튼 이클립스 온!


덤으로 프로젝트 이름좀 바꾸겟다.

프로젝트가 여러개다버니 테스트로 이름지어서...

어떤게 강좌용 글인지 헷갈렸기 때문;;

이전글 스샷엔 프로젝트 갯수가 몇개 없지만

다른컴엔 프로젝트가 10개 넘어간다...(왜인지 묻지마라..)


해당 프로젝트 폴더에서 우클릭 -리팩터 - 이름바꾸기

tistory로 변경





근데 이렇게하면 서버구동시의 주소는 그대로 test이다

서버에서 사용하는 주소는 서버로 가서 설정해줘야 한다

서버탭- 해당 서버 더블 클릭 - 보듈탭 선택 - 해당 프로젝트 선택 - 에딧 - 패치 부분 수정



...?? 어라.. 이미 바껴있다???

다른컴에서 사용하던 프로젝트는 안바뀌던데... 큼;;

아무튼 저렇게 바꾸면 된다..


이제 로그 설정 하러가자

학원에서는 로그 log4j 자르 파일을 임포트후 properties파일을 설정해서 사용하는법을 배웠는데...

잊어버렸다..

근데 오히려 잘된게 요즘엔 properties 방식을 안쓰는 추세라고 하니 뭐..

어쨋든 http://addio3305.tistory.com/43 글대로 로그.xml 파일을 열자



일단 어댑터 부분

<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="holy.com.test">

<level value="info" />

</logger>

파랑색은 실제로 작동될 대상 및 범위를 정하는 것이다

holy.com.test

holy.com.test.ㅁㄴㅇㄹ

holy.com.test.ㄴㅇㄻㄴ.ㅁㄴㅇㄻ.ㅁㄴㅇㄻ.ㅁㄴㅇㄹ


등등 저 패키지 폴더 안이라면 전부다 작동 대상이라는 뜻이다.

레벨값으로 인포라고 설정되있는데

디버그,인포,원,에러 였던가 아무튼 촐 5단계인데(오른족일수록 상위)

그중 인포 이상의 내용만 풀력하라는 것이다

저 설정 상태론 디버그로 부를 메세지는 출력 안된다.

즉 코딩중에 중간 값을 전부 디버그로 출력 시켜놓고 실사용시에는 인포나 원 이상으로 설저하면 콘솔 출력이 안되는 것이다.

로그 출력 자체가 성능을 엄연히 잡아머기때문에 이런 방식을 사용한다.


자 그럼 수정하자!

<?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> -->

<appender

name="console"

class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param

name="ConversionPattern"

value="%d{HH:mm:ss,SSS} %5p %c %m%n" />

</layout>

</appender>

<appender

name="console-infolog"

class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param

name="ConversionPattern"

value="%d{HH:mm:ss,SSS} %5p %m%n" />

</layout>

</appender>

<appender

name="console-sql"

class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param

name="ConversionPattern"

value="%d{HH:mm:ss,SSS} %m%n" />

</layout>

</appender>

<appender

name="console-table"

class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param

name="ConversionPattern"

value="%m%n" />

</layout>

</appender>

<!-- Application Loggers -->

<!-- <logger name="holy.com.test">

<level value="info" />

</logger> -->

<!-- 자바파일 콘솔 출력 범위 설정 -->

<logger name="holy">

<level value="debug" />

<appender-ref ref="console-infolog"/>

</logger>

<!-- Query Loggers -->

<!-- 쿼리 로그 출력 -->

<logger

name="jdbc.sqlonly"

additivity="false">

<level value="INFO" />

<appender-ref ref="console-sql" />

</logger>

<logger

name="jdbc.resultsettable"

additivity="false">

<level value="INFO" />

<appender-ref ref="console-table" />

</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" />

</root> -->

<!-- Root Logger -->

<root>

<priority value="off" />

<appender-ref ref="console" />

</root>

</log4j:configuration>

기존 프로젝트에다가 참조글의 설정을 추가해줬다.

난 스프링 로그도 볼것이기때문에 스프링 크래임 워크 로그를 그대로 남긴 것이다

그리고 빨간줄에 저렇게 써놨는데 

내 자바 패키지명은 저렇게 되있고 저 아래 전 폴더에서 사용할것이기 때문이다


저렇게 말이다.

sql 쿼리문하고 

쿼리 결과 출력용은 따로 만들었다.

훗... 나도 이제 실력자군(?)...

그리고 참조글 대로 1단계 패키지 안에 커먼 폴더/패키지를 만들자.

나중에 다른 프로젝트에다가 이걸 그대로 복사해서 쓰면 된다.

커먼 폴더는 그러라고 만든거다.


참조글 2번 대로 자바 만들자

그대로 복사후 붇여넣기

코드는 해당글에서 복사해서 쓰자..

http://addio3305.tistory.com/43


어이구... 빨간줄이 아주 끝내준다

임포트 단축키를 쓰자

...안된다...

심지어 다른 자바파일 열어봤더니 전부 빨간줄...

아까 프로젝트 이름을 바꾼게 원인인데..

마븐이 자르 파일을 받을때 프로젝터 이름으로 만들어서  저장하나보다..

이럴땐 프로젝트- 정리 를 눌러주자...

그리고 다시 임포트 단축키 컨-쉬-o 


깔끔해졌다

위 내용은 뭐 취향것 수정해도 된다.

자세한 설명은 해당 참조글에서 봐라


/tistory/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

그리고 위파일을 아래같이 대대적 수정..

스카마도 그렇고 클래스도 그렇고...

<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns:context="http://www.springframework.org/schema/context"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://www.springframework.org/schema/beans"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd

       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">


<context:component-scan base-package="holy"></context:component-scan>


<!-- Enables the Spring MVC @Controller programming model -->

<mvc:annotation-driven />


<mvc:resources

mapping="/resources/**"

location="/resources/" />

<mvc:resources

mapping="/css/**"

location="/css/" />

<mvc:resources

mapping="/js/**"

location="/js/" />

<mvc:resources

mapping="/img/**"

location="/img/" />


<mvc:interceptors>

<mvc:interceptor>

<mvc:mapping path="/**" />

<bean

id="loggerInterceptor"

class="holy.common.LoggerInterceptor"></bean>

</mvc:interceptor>

</mvc:interceptors>


<bean

class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />


<bean

class="org.springframework.web.servlet.view.BeanNameViewResolver"

p:order="0" />

<bean

id="jsonView"

class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />


<bean

class="org.springframework.web.servlet.view.UrlBasedViewResolver"

p:order="1"

p:viewClass="org.springframework.web.servlet.view.JstlView"

p:prefix="/WEB-INF/views/"

p:suffix=".jsp">

</bean>

</beans>


하지만 Error creating bean with name 'jsonView' defined in ServletCont

ext resource 라는 애러가 뜬다

마븐에 해당 라이브러리가 없어서 그런데

/tistory/pom.xml 에다가 추가하자

<dependencies>

...

<dependency>

<groupId>org.codehaus.jackson</groupId>

<artifactId>jackson-mapper-asl</artifactId>

<version>1.9.13</version>

</dependency>

...

</dependencies>


그리고 실행...


....

잘 나오긴 나온다

지난번에 만들어뒀던

/tistory/src/main/webapp/index.jsp 파일이 작동하는 순서대로 로그가 떠버린것이다


다음엔 서블릿을 하나더 추가해보자.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함