关闭休眠日志记录控制台输出

2022-08-31 11:04:56

我正在使用休眠3,并希望阻止它将所有启动消息转储到控制台。我尝试在log4j.properties中注释掉stdout行,但没有运气。我已将我的日志文件粘贴到下面。此外,我正在使用具有标准项目结构的eclipse,并在项目文件夹和bin文件夹的根目录中都有log4j.properties的副本。

### direct log messages to stdout ###
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.out
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=hibernate.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trac5

答案 1

重要通知:该属性(休眠配置的一部分,而不是日志记录框架配置的一部分!

hibernate.show_sql

绕过任何日志记录框架(可以通过缺少消息的输出格式来识别)直接控制到 STDOUT 的日志记录。如果使用 log4j 等日志记录框架,则应始终将该属性设置为 false,因为它根本没有给您带来任何好处。

这种情况激怒了我很长一段时间,因为我从来没有真正关心过它,直到我试图写一些关于Hibernate的基准。


答案 2

尝试设置更合理的日志记录级别。将日志记录级别设置为意味着仅记录处于或更高级别 (和 ) 的日志事件,即忽略日志记录事件。infoinfowarnerrorfataldebug

log4j.logger.org.hibernate=info

或在 xml 版本的 log4j 配置文件中:

<logger name="org.hibernate">
  <level value="info"/> 
</logger>

另请参阅 log4j 手册


推荐