최대 절전 모드 로깅 구성에 약간의 문제가 있습니다. 우리 애플리케이션에서는 두 개의 스레드가 동시에 Database 테이블의 각 행에 잠금을 설정하려고합니다. 가끔씩 이러한 스레드 중 하나가 이미 잠긴 행을 잠그려고합니다. 이 오류는 다음과 같이 throw됩니다.내 SystemOut.log 파일에서 최대 절전 모드 오류를 리디렉션
[2/24/12 15:00:34:492 CET] 0000003a JDBCException W org.hibernate.util.JDBCExceptionReporter logExceptions SQL Error: 54, SQLState: 61000
[2/24/12 15:00:34:496 CET] 0000003a JDBCException E org.hibernate.util.JDBCExceptionReporter logExceptions ORA-00054: resource busy and acquire with NOWAIT specified
이 줄은 SystemOut.log 파일에 저장됩니다. 나는 그들을 다른 파일에 넣으려고합니다. 그래서 내 log4j 구성 파일에서이 같은 새로운 펜더 생성 :
이<logger name="org.hibernate" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.type" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.tool.hbm2ddl" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.pretty" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.cache" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.transaction" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.jdbc" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.hql.ast.AST" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.secure" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
<logger name="org.hibernate.SQL" additivity="false">
<level value="ALL"/>
<appender-ref ref="JDBCExceptionReporter"/>
</logger>
이 구성은 작동하지 않았다 두 : 마지막으로
<appender name="JDBCExceptionReporter" class="org.apache.log4j.RollingFileAppender">
<param name="Encoding" value="UTF-8"/>
<param name="File" value="JDBCExceptionReporter.log"/>
<param name="MaxFileSize" value="50000KB"/>
<param name="MaxBackupIndex" value="5"/>
<param name="BufferedIO" value="false"/>
<param name="ImmediateFlush" value="true"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d, %-5p, %X{ORG_NAME}, %X{USER_NAME}, %c - %m%n"/>
<!-- Use pattern below if it is required to view the log files -->
<!-- using LogFactor5-->
<!--<param name="ConversionPattern" value="[slf5s.start] %d[slf5s.DATE]
%-5p[slf5s.PRIORITY] %X{ORG_NAME} %X{USER_NAME}
[slf5s.NDC] %c[slf5s.CATEGORY] - %m[slf5s.MESSAGE] %n"-->
</layout>
</appender>
을, 난 그냥 루트 요소 전에 해당 로거를 추가 행은 항상 SystemOut.log에 기록되고 my JDBCExceptionReporter.log에는 기록되지 않습니다. 누군가 내 문제에 대한 해답을 갖고 있습니까? 도움에 감사드립니다.
jboss를 사용하고 있습니까? 또는 다른 응용 프로그램 서버입니까? 환경에 대해 더 자세히 알려주십시오. – mericano1
AIX 서버에서 Websphere Application Server 6을 사용하고 있습니다. Hibernate 3 및 log4j-1.2.15, slf4j-log4j12-1.5.5 – astrotouf