我想配置jboss 7以在不同的文件中保存两个类别,但是当我启动jboss时,此文件sql_hib.log为空。 FILE_SQL处理程序不起作用。我不知道为什么...... 如果我将FILE_SQL放置到根记录器 - 然后sql_hib.log开始增长,但在这种情况下它包含许多冗余日志。 这是standalone.xml的一部分
th {
/* not applied successfully */
color: red;
}
答案 0 :(得分:0)
我已经设置了这个设置来调试sql查询和参数。
这就是为什么我决定使用单独的文件。此外,我制作了更多类别,因为一个班级制作的文字过多。 AbstractResultSetProxyHandler
正如我之前提到的 - 设置刚开始工作......我稍微改变它们 - 以避免海洋不必要的文本。
结果设置:
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE">
<formatter>
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<periodic-rotating-file-handler name="FILE_SQL" autoflush="true">
<level name="TRACE"/>
<formatter>
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="sql_hib.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="org.hibernate.SQL">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.type">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.loader">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.persister">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.hql">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.cfg">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.dialect">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.service">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<logger category="org.hibernate.engine.jdbc.internal.proxy.PreparedStatementProxyHandler">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>
<root-logger>
<level name="DEBUG"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
</subsystem>
我知道最好只过滤一个AbstractResultSetProxyHandler
,而不是将每个其他类别过滤到设置中。但我不知道如何过滤。
这些设置有效。
但是hibernate日志也是用server.log
编写的。我不明白为什么
答案 1 :(得分:0)
我知道这是一个非常老的线程。但这可能会帮助某人。 use-parent-handlers将解决问题。在这种情况下,它不会通过root-logger打印重复的日志。
<periodic-rotating-file-handler name="FILE_SQL" autoflush="true">
<level name="TRACE"/>
<formatter>
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="sql_hib.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="org.hibernate.SQL" use-parent-handlers="false">
<level name="TRACE"/>
<handlers>
<handler name="FILE_SQL"/>
</handlers>
</logger>