Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在控制台上显示日志消息?_Java_Spring_Hibernate_Log4j - Fatal编程技术网

Java 如何在控制台上显示日志消息?

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

我在一个独立的应用程序中使用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 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不是一个好主意。更加准确,因为您可能会在日志中迷失方向。