【问题标题】:How add log4j (for consol) in project (with hibernate and spring)如何在项目中添加log4j(用于consol)(使用hibernate和spring)
【发布时间】:2015-06-24 10:10:07
【问题描述】:

我想将 log4j(用于 consol)添加到我的项目测试中(我使用 hibernate 和 spring)。 我在测试/资源中添加了 log4j.properties:

log4j.rootLogger=INFO, 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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

并写在测试类中:

import org.apache.log4j.Logger;
private Logger logger = Logger.getLogger(MyTest.class);

    @Test
    public void test1() {
        logger.info("info test");
        logger.debug("debug test");
    }

分级:

testCompile 'log4j:log4j:1.2.17'

但我在控制台中没有此文本 ("info test"),我在控制台中有:

13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : maxKeyNumber
13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : updated
13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : credential
13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : aid
13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : cvmConfig
13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : dki
13:01:24.626 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : isMsdSupport
13:01:24.627 [main] DEBUG o.h.p.w.spi.MetamodelGraphWalker - Visiting attribute path : serviceCode

【问题讨论】:

  • 你是不是忘记把 log4j 依赖放到你的 pom 里了?
  • 我用的是gradle,我在build.gradle中添加了log4j依赖
  • 您确定这是正确的控制台,您正在查看吗? “System.out.println” 输出到那里了吗?
  • 对不起,在控制台我有:15:15:56.228 [main] INFO tests.MyTest - info test 15:15:56.228 [main] DEBUG tests.MyTest - 调试测试
  • 但我只设置了'INFO' (log4j.rootLogger=INFO, stdout),为什么我在控制台中有'debug'?

标签: java database spring hibernate log4j


【解决方案1】:

您能否验证 log4j.properties 资源在类路径中并且在运行时找到?通常如果你在eclipse项目的源路径中添加test/resources文件夹,bin文件夹应该有(输出文件夹名称可以不同,但​​这个文件必须在classpath下)。

【讨论】:

  • 也许你提示我 - 如何验证 log4j.properties 资源是否在类路径中并在运行时找到?我使用intellij idea,并在结构项目测试/资源文件夹中设置为资源。
  • 检查构建路径的方法是here。还要在磁盘上搜索整个项目以查找 log4j.properties。您必须找到其中两个...一个在 test/resources 文件夹中,然后查看另一个在哪里。如果您在 test/resources 下仅找到 1 个,则说明类路径中没有它。现在,找到 *.class 文件的去向。那是你的类路径。
【解决方案2】:

在 src 文件夹中添加 log4j.xml 文件并将文件位置更改为下面的 xyz.log<!-- FILE Appender --> <appender name="FILE" class="org.apache.log4j.FileAppender"> <param name="File" value="D:\\xyz.log" /> <param name="MaxFileSize" value="1MB" /> <param name="MaxBackupIndex" value="100" /> <param name="Append" value="false" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /> </layout> </appender

>

【讨论】:

  • 为什么? OP 想要登录控制台,而不是文件。
【解决方案3】:

您需要将控制台附加程序添加到 log4j。我用 log4j.xml 完成了它,而不是属性文件。我希望您可以将其转换为您的 log4j.properties 文件。

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d - %m%n"/>
    </layout>
</appender>

最后,您需要将此附加程序添加到根记录器。

    <root>
    <priority value="debug"/>
    <appender-ref ref="error"/>
    <appender-ref ref="console"/>
    <appender-ref ref="trace"/>
</root>

希望对你有帮助

【讨论】:

  • 在 Propertyfile 中,这是通过这一行完成的:“log4j.rootLogger=INFO, stdout”
猜你喜欢
  • 2021-04-01
  • 2012-06-12
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2023-04-09
  • 1970-01-01
  • 2011-03-13
  • 2015-06-24
相关资源
最近更新 更多