Java 冬眠+;Logback,不登录文件
我正在使用Hibernate 3.1.3和Logback(经典+核心)1.1.7 这是我的logback.xmlJava 冬眠+;Logback,不登录文件,java,hibernate,file,logging,logback,Java,Hibernate,File,Logging,Logback,我正在使用Hibernate 3.1.3和Logback(经典+核心)1.1.7 这是我的logback.xml <appender name="hibernate-sql" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/hibernate-sql.log</file> <encoder class="ch.qos.logback.c
<appender name="hibernate-sql"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/hibernate-sql.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="org.hibernate.hql">
<level value="TRACE"/>
<appender-ref ref="hibernate-sql"/>
</logger>
<logger name="org.hibernate.SQL">
<level value="TRACE"/>
<appender-ref ref="hibernate-sql"/>
</logger>
<root level="TRACE">
<!--<appender-ref ref="FILE"/>-->
<!--<appender-ref ref="STDOUT"/>-->
</root>
为什么它登录到控制台而不是我的文件中,即使它很好地创建了文件?谢谢。尝试向logback.xml文件添加
debug=“true”
,如前所述。这将有助于理解日志的真正配置方式。尝试向logback.xml文件中添加debug=“true”
,如前所述。这将有助于理解日志记录的实际配置。您的附件名称不正确
<appender-ref ref="FILE"/>
应该是
您的附件名称不正确
<appender-ref ref="FILE"/>
应该是
我更改了您原始代码的某些部分,方法如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<appender name="hibernate-sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>.../logs/hibernate-sql.log</file> <!-- Here i add the full path to log file -->
<encoder>
<Pattern>%green(%d) %highlight(%-5level) %cyan(%logger{0}) mdc=%X{id} %msg %n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="SERVER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file></file> <!-- Full path to log file -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<FileNamePattern></FileNamePattern>
</rollingPolicy>
<encoder>
<Pattern>%green(%d) %highlight(%-5level) %cyan(%logger{0}) mdc=%X{id} %msg %n</Pattern>
</encoder>
</appender>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
<logger name="org.hibernate" level="INFO"> <!-- Here i changed your block -->
<appender-ref ref="hibernate-sql" />
</logger>
<root level="INFO">
<appender-ref ref="SERVER" />
</root>
</configuration>
…/logs/hibernate-sql.log
%绿色(%d)%highlight(%-5level)%cyan(%logger{0})mdc=%X{id}%msg%n
c:/temp/hibernate sql.%i.log.zip
1.
10
2MB
%绿色(%d)%highlight(%-5level)%cyan(%logger{0})mdc=%X{id}%msg%n
c:/temp/hibernate sql.%i.log.zip
1.
10
2MB
基本上,我添加了日志的完整路径,并更改了“HibernateSQL”配置。您可以尝试适应您的情况我更改了您原始代码的某些部分,方法如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<appender name="hibernate-sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>.../logs/hibernate-sql.log</file> <!-- Here i add the full path to log file -->
<encoder>
<Pattern>%green(%d) %highlight(%-5level) %cyan(%logger{0}) mdc=%X{id} %msg %n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="SERVER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file></file> <!-- Full path to log file -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<FileNamePattern></FileNamePattern>
</rollingPolicy>
<encoder>
<Pattern>%green(%d) %highlight(%-5level) %cyan(%logger{0}) mdc=%X{id} %msg %n</Pattern>
</encoder>
</appender>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>c:/temp/hibernate-sql.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
<logger name="org.hibernate" level="INFO"> <!-- Here i changed your block -->
<appender-ref ref="hibernate-sql" />
</logger>
<root level="INFO">
<appender-ref ref="SERVER" />
</root>
</configuration>
…/logs/hibernate-sql.log
%绿色(%d)%highlight(%-5level)%cyan(%logger{0})mdc=%X{id}%msg%n
c:/temp/hibernate sql.%i.log.zip
1.
10
2MB
%绿色(%d)%highlight(%-5level)%cyan(%logger{0})mdc=%X{id}%msg%n
c:/temp/hibernate sql.%i.log.zip
1.
10
2MB
基本上,我添加了日志的完整路径,并更改了“HibernateSQL”配置。您可以尝试适应您的情况以下是我的解决方案:
要使用Logback 1.1.7
和Hibernate 3.1.3
获取日志,我们需要:
slf4j api 1.7.5
jul-to-slf4j 1.7.6
jul-over-slf4j 1.7.6
Logback 1.1.7
和Hibernate 3.1.3
获取日志,我们需要:
slf4j api 1.7.5
jul-to-slf4j 1.7.6
jul-over-slf4j 1.7.6
其他版本也可以工作,但最重要的是jul-over-slf4j依赖关系。我在原始POST中添加调试并添加关于logback的日志我在原始POST中添加调试并添加关于logback的日志post@Jon将第一行更改为:并排除:logs/hibernatesql。log@Julios迪亚斯:这样做,我得到一个java.lang.IllegalStateException:“File”选项必须是set@Jon将第一行更改为:并排除:logs/hibernatesql。log@JuliosDias:这样做,我得到一个java.lang.IllegalStateException:必须设置“File”选项