Java 错误 - 无法使用 log4j 登录

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/23281667/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 21:38:45  来源:igfitidea点击:

Error - cannot log with log4j

javalogginglog4j

提问by Erran Morad

I am trying to use log4j 1.2 jarin my hibernate 3.1(in eclipse) example project. The java code runs perfecly, but the console shows me the following log4jwarnings -

我正在尝试log4j 1.2 jar在我的hibernate 3.1(在eclipse)示例项目中使用。Java 代码完美运行,但控制台向我显示以下log4j警告 -

log4j:ERROR Could not find value for key 
log4j.appender.stdout log4j.logger.org.hibernate.info
log4j:ERROR Could not instantiate appender named 
"stdout log4j.logger.org.hibernate.info".

I have referenced the following -

我参考了以下内容-

  1. log4j-1.2.17.jar
  2. slf4j-api-1.6.0.jar
  3. slf4j-simple-1.6.0.jar
  1. log4j-1.2.17.jar
  2. slf4j-api-1.6.0.jar
  3. slf4j-simple-1.6.0.jar

My log4j.properties file contains -

我的 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

### set log levels - ###
log4j.rootLogger=warn, stdout log4j.logger.org.hibernate.info

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

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

How do I fix these warnings ? I am new to logging and I need some help to figure it out.

如何修复这些警告?我是记录的新手,我需要一些帮助来弄清楚。

Thanks.

谢谢。

采纳答案by Erran Morad

This line:

这一行:

### Set Log Levels - ### 
log4j.rootLogger=warn, stdout log4j.logger.org.hibernate=info 

Should be broken into two lines:

应该分成两行:

log4j.rootLogger=warn, stdout 
log4j.logger.org.hibernate=info

Wow ! As a newbie. I would have never figured out something like this.

哇 !作为一个新手。我永远不会想出这样的事情。

The code I use finally is here -

我最终使用的代码在这里 -

### Direct log4j properties 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  

### Set Log Levels - ###  
log4j.rootLogger=warn, stdout  
log4j.logger.org.hibernate=info  

### Log JDBC Bind Parameters ###  
log4j.logger.org.hibernate.type=debug  

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