什么是日志记录,Apache Commons日志记录是如何使用的?

Sha*_*ala 3 java logging interface apache-commons apache-commons-logging

Web应用程序服务器希望记录哪些信息,以及为什么?

据我所知

org.apache.commons.logging.Log
Run Code Online (Sandbox Code Playgroud)

是一个抽象其他Logging类提供的功能的接口,同样适用于接口LogFactory.

我想了解的代码有 -

Log auditLogger = LogFactory.getLog(someString);
Run Code Online (Sandbox Code Playgroud)

String someString如何用于标识要生成的LogFactory?如何查看正在使用的Log和LogFactory类的实现?

Joh*_*erg 5

字符串是任意的identifier,我们可以使用它来重定向过滤日志输出.一种常见的方法是使用className,例如,

Log auditLogger = LogFactory.getLog(MyCurrentClass.class);
Run Code Online (Sandbox Code Playgroud)

如您所说,如果没有提供其他日志库,则commons-logging默认为Facade java.util.logging.我建议在类路径中放置一个日志实现,如log4j,logbackslf4j.

假设你把eg放在log4j那里,你可以使用配置文件控制日志输出log4j.xml,例如:

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration>

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        ..... 
    </appender>


    <!-- Send debug information from "com.company.MyCurrentClass" to CONSOLE -->
    <logger name="com.company.MyCurrentClass">
        <level value="DEBUG"/>
        <appender-ref ref="CONSOLE"/>
    </logger>

</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)