Spring 简明教程
Spring - Logging with Log4J
这是一个非常易于使用的 Spring 应用程序中的 Log4J 功能。以下示例将引导你完成一些简单的步骤,以解释 Log4J 和 Spring 之间的简单集成。
我们假设你已在机器上安装了 log4J 。如果没有,则可以从 https://logging.apache.org/ 下载它,然后只需将压缩文件解压到任意文件夹中。我们只会在我们的项目中使用 log4j-x.y.z.jar 。
接下来,让我们准备一个运行中的 Eclipse IDE,并按照以下步骤使用 Spring Web 框架开发基于动态表单的 Web 应用程序:
Steps |
Description |
1 |
使用 SpringExample 创建一个项目,并在创建的项目 src 文件夹下创建 com.tutorialspoint 包。 |
2 |
使用 Add External JARs 选项添加必需的 Spring 库,如 Spring Hello World Example 章节中所述。 |
3 |
同样使用 Add External JARs 在项目中添加 log4j 库 log4j-x.y.z.jar。 |
4 |
在 com.tutorialspoint 包下创建 Java 类 HelloWorld 和 MainApp。 |
5 |
在 src 文件夹下创建 Beans 配置文件 Beans.xml。 |
6 |
在 src 文件夹下创建 log4J 配置文件 log4j.properties。 |
7 |
最后一步是创建所有 Java 文件和 Bean 配置文件的内容,并按如下所述运行应用程序。 |
以下是 HelloWorld.java 文件的内容
package com.tutorialspoint;
public class HelloWorld {
private String message;
public void setMessage(String message){
this.message = message;
}
public void getMessage() {
System.out.println("Your Message : " + message);
}
}
以下是第二个文件的内容 MainApp.java
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.log4j.Logger;
public class MainApp {
static Logger log = Logger.getLogger(MainApp.class.getName());
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
log.info("Going to create HelloWord Obj");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
log.info("Exiting the program");
}
}
您可以像生成信息消息一样生成 debug 和 error 信息。现在让我们看看 Beans.xml 文件的内容
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id = "helloWorld" class = "com.tutorialspoint.HelloWorld">
<property name = "message" value = "Hello World!"/>
</bean>
</beans>
以下是 log4j.properties 的内容,它定义了 Log4J 生成日志消息所需的标准规则
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=C:\\log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
在您创建源文件和 bean 配置文件后,让我们运行应用程序。如果您的应用程序一切正常,它将在 Eclipse 控制台中打印以下消息:
Your Message : Hello World!
如果您检查 C:\\ 驱动器,那么您应该会发现日志文件 log.out ,其中包含各个日志消息,如下所示:
<!-- initialization log messages -->
Going to create HelloWord Obj
Returning cached instance of singleton bean 'helloWorld'
Exiting the program
Jakarta Commons Logging (JCL) API
或者,您可以使用 Jakarta Commons Logging (JCL) API 在 Spring 应用程序中生成日志。可以从 https://jakarta.apache.org/commons/logging/ 下载 JCL。在该软件包之外,我们唯一在技术上需要的就是 commons-logging-x.y.z.jar 文件,该文件需要以与在上述示例中放置 log4j-x.y.z.jar 相同的方式置于您的类路径中。
要使用日志记录功能,您需要 org.apache.commons.logging.Log 对象,然后您可以根据需求调用以下方法之一:
-
fatal(Object message)
-
error(Object message)
-
warn(Object message)
-
info(Object message)
-
debug(Object message)
-
trace(Object message)
以下是 MainApp.java 的替换内容,它使用 JCL API
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.commons.logging. Log;
import org.apache.commons.logging. LogFactory;
public class MainApp {
static Log log = LogFactory.getLog(MainApp.class.getName());
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
log.info("Going to create HelloWord Obj");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
log.info("Exiting the program");
}
}
您必须确保在编译和运行程序之前已将 commons-logging-x.y.z.jar 文件包含在您的项目中。
现在,在上述示例中保持其余的配置和内容不变,如果您编译并运行应用程序,您将获得与使用 Log4J API 相似的结果。