如何在控制台上显示日志消息?
问题描述:
我在独立应用程序中使用Spring和Hibernate。我需要在控制台上看到记录器消息,如下所示...如何在控制台上显示日志消息?
2011-02-10 12:24:17 DriverManagerDataSource [INFO] Loaded JDBC driver: org.h2.Driver
2011-02-10 12:24:17 JdbcTemplate [DEBUG] Executing SQL statement [SELECT 1]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Fetching JDBC Connection from DataSource
2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] Creating new JDBC DriverManager Connection to [jdbc:h2:/data/h2/testa]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Returning JDBC Connection to DataSource
2011-02-10 12:24:17 JdbcTemplate [DEBUG] Executing SQL statement [SELECT 1]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Fetching JDBC Connection from DataSource
2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] Creating new JDBC DriverManager Connection to [jdbc:h2:/data/h2/testa]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Returning JDBC Connection to DataSource
我有log4j属性文件。我需要设置哪些属性才能看到上述的控制台?
谢谢!
答
您需要定义一个控制台的appender:
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-12d{HH:mm:ss,SSS} - %p - %C{1}.%M(%-3L) | %m%n" />
</layout>
</appender>
然后将其添加到根:
<root>
<appender-ref ref="CONSOLE" />
</root>
答
下面我给你的log4j配置的例子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %c (%L) - %m%n" />
</layout>
</appender>
<logger name="com.opensymphony.xwork2">
<level value="error" />
</logger>
<!-- Root Logger -->
<root>
<priority value="info" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
然后在你想要记录的类中,你需要像这样声明记录器:
私有最终静态记录器记录器= Logger.getLogger(Giannis.class);
,然后你像做
logger.debug( “你好”);
你shoudl在日志中看到该程序运行
答
时,从您的评论看起来像你只有一个附加器即标准输出和你要求显示在控制台上,你需要一提的是附加器中包装定义如下。
log4j.log4j.rootLogger=DEBUG, stdout
log4j.logger.org.hibernate=DEBUG, stdout
log4j.logger.org.springframework=DEBUG, stdout
log4j.logger.org.apache.axis=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
它会从 'org.hibernate作为', 'org.springframework',可在DEBUG级别 'org.apache.axis' 包打印日志。
注意:如果你想捕捉日志只从春特定的软件包/休眠您可以提到,包带附加器像下面
log4j.logger.org.springframework.transaction=DEBUG, stdout
@jddsantaellam,感谢您的答复。我需要看到春天和休眠连接相关的东西的日志,如连接打开和关闭控制台中的东西。下面我有我的log4j.log4j.rootLogger = DEBUG配置,文件 log4j.logger.org.hibernate = DEBUG log4j.logger.org.springframework = DEBUG log4j.logger.org.apache.axis = DEBUG。 ............. log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.threshold = DEBUG log4j.appender.stdout.layout = org.apache.log4j .PatternLayout log4j.appender.stdout.layout.ConversionPattern =%d%p [%c] - %m%n – user1016403 2012-07-16 08:48:37
你需要找出你所需要的软件包类,然后为它们激活DEBUG级别。大概调试整个org.springframework不是一个好主意。更准确,因为你可以在日志中丢失。 – jddsantaella 2012-07-16 09:12:26