Java 如何在控制台上显示日志消息?
我在一个独立的应用程序中使用Spring和Hibernate。我需要在控制台上看到日志记录消息,如下所示Java 如何在控制台上显示日志消息?,java,spring,hibernate,log4j,Java,Spring,Hibernate,Log4j,我在一个独立的应用程序中使用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
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 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>
您需要定义控制台附加器:
<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)
然后你做了一些类似的事情
debug(“你好”)
当程序运行时,您应该在下面的日志中看到这一点。我给您举一个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)
然后你做了一些类似的事情
debug(“你好”)
当程序运行时,您应该在日志中看到这一点。从您的评论来看,您似乎只有一个appender,即stdout,正如您要求在控制台上显示的那样,您需要在包定义中提到该appender,如下所示
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”、“org.apache.axis”包中的日志
注意:如果您只想从spring/hibernate捕获特定包的日志,您可以使用appender提及该包,如下所示
log4j.logger.org.springframework.transaction=DEBUG, stdout
从您的评论来看,您似乎只有一个appender,即stdout,正如您要求在控制台上显示的那样,您需要在包定义中提到该appender,如下所示
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”、“org.apache.axis”包中的日志
注意:如果您只想从spring/hibernate捕获特定包的日志,您可以使用appender提及该包,如下所示
log4j.logger.org.springframework.transaction=DEBUG, stdout
@jddsantaellam,谢谢您的回复。我需要查看spring和hibernate连接相关的日志,比如何时在控制台中打开和关闭连接。我的log4j.log4j.rootLogger=DEBUG中有以下配置,文件log4j.logger.org.hibernate=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.patternallayout log4j.appender.stdout.layout=%d%p[%c]-%m%n您需要找出什么包类可以满足您的需要,然后为它们激活调试级别。可能调试整个org.springframework不是一个好主意。更准确一些,因为你可能会在日志中迷失方向。@jddsantaellam,谢谢你的回复。我需要查看spring和hibernate连接相关的日志,比如何时在控制台中打开和关闭连接。我的log4j.log4j.rootLogger=DEBUG中有以下配置,文件log4j.logger.org.hibernate=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.patternallayout log4j.appender.stdout.layout=%d%p[%c]-%m%n您需要找出什么包类可以满足您的需要,然后为它们激活调试级别。可能调试整个org.springframework不是一个好主意。更加准确,因为您可能会在日志中迷失方向。