예외발생시 로그파일 저장 다시 질문드립니다.
- 작성자 :
- 김*연
- 작성일 :
- 2015-01-15 10:13:03
- 조회수 :
- 1,123
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
eGov 3.1.0 을 사용하고 있습니다.
this.logger.debug(); 를 사용하지 않고
String a = null;
a.toCharArray();
위와 같이 NullPointerException 을 강제로 발생시키면
에러내용이 콘솔에만 찍히고 로그파일에는 저장되지 않습니다.
this.logger.debug(); 를 사용하지 않은 상태에서 발생하는
Exception 내용을 로그파일에도 저장하고 싶은데 어떻게 해야 하나요?
log4j2.xml 을 아래와 같이 설정했습니다.
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%c{1}.%M(%L)] - %m%n" />
</Console>
<RollingFile name="file" fileName="C:/NProject/log/log.log" filePattern="C:/NProject/log/log.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="%d %5p [%c{1}.%M(%L)] - %m%n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="egovframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file"/>
</Logger>
<Root level="ERROR">
<AppenderRef ref="console" />
<AppenderRef ref="file"/>
</Root>
</Loggers>
</Configuration>
.
this.logger.debug(); 를 사용하지 않고
String a = null;
a.toCharArray();
위와 같이 NullPointerException 을 강제로 발생시키면
에러내용이 콘솔에만 찍히고 로그파일에는 저장되지 않습니다.
this.logger.debug(); 를 사용하지 않은 상태에서 발생하는
Exception 내용을 로그파일에도 저장하고 싶은데 어떻게 해야 하나요?
log4j2.xml 을 아래와 같이 설정했습니다.
<Configuration>
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%c{1}.%M(%L)] - %m%n" />
</Console>
<RollingFile name="file" fileName="C:/NProject/log/log.log" filePattern="C:/NProject/log/log.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="%d %5p [%c{1}.%M(%L)] - %m%n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="egovframework" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file"/>
</Logger>
<Root level="ERROR">
<AppenderRef ref="console" />
<AppenderRef ref="file"/>
</Root>
</Loggers>
</Configuration>
.
A
안녕하세요. 김부연님
dispatcher-servlet.xml 에서는 오류발생시 해당 페이지로 보내도록 설정할 수 있습니다.
e.g)
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="cmmn/egovError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">cmmn/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">cmmn/transactionFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/egovError</prop>
<prop key="org.springframework.security.AccessDeniedException">cmmn/egovError</prop>
</props>
</property>
</bean>
그렇기 때문에 아래와 같이 Logger를 추가로 아래와 같이 추가하시면 됩니다.
<Logger name="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
오류처리를 위와같이 하지 않으시면 아래와 같이 springframework에 대한 Logger를 만드시면 됩니다.
<Logger name="org.springframework" level="ERROR" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
고맙습니다.
dispatcher-servlet.xml 에서는 오류발생시 해당 페이지로 보내도록 설정할 수 있습니다.
e.g)
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="cmmn/egovError"/>
<property name="exceptionMappings">
<props>
<prop key="org.springframework.dao.DataAccessException">cmmn/dataAccessFailure</prop>
<prop key="org.springframework.transaction.TransactionException">cmmn/transactionFailure</prop>
<prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/egovError</prop>
<prop key="org.springframework.security.AccessDeniedException">cmmn/egovError</prop>
</props>
</property>
</bean>
그렇기 때문에 아래와 같이 Logger를 추가로 아래와 같이 추가하시면 됩니다.
<Logger name="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" level="DEBUG" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
오류처리를 위와같이 하지 않으시면 아래와 같이 springframework에 대한 Logger를 만드시면 됩니다.
<Logger name="org.springframework" level="ERROR" additivity="false">
<AppenderRef ref="console" />
<AppenderRef ref="file" />
</Logger>
고맙습니다.