1、首先将前面构建好的SpringMVC项目拷贝一份,具体如何使用Maven构建SpringMVC项目的地址为https://www.cnblogs.com/wylwyl/p/13273278.html
2、修改pom.xml文件,添加log4j2的依赖,加入的内容如下
<properties> <spring.version>5.2.1.RELEASE</spring.version> <log4j2.version>2.13.3</log4j2.version> </properties> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.version}</version> </dependency>
3、在src/main/resources目录下添加log4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!-- 配置LoggerConfig,即Appenders的日志级别为WARN --> <Configuration status="WARN"> <!-- Appenders支持配置多个Appender,支持向不同的目标输送日志,本例为配置向控制台输出 --> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </Console> </Appenders> <!-- Loggers支持配置多个Logger,可引用不同的目标Appender,也可根据业务需求定制特定要求的Appender --> <Loggers> <Root level="info"> <AppenderRef ref="Console" /> </Root> </Loggers> </Configuration>
4、修改web.xml文件,加入下面的代码,如果项目中使用的是Servlet2.5以上版本,则不需要配置用于log4j2的监听,所以现在一般不需要在单独为log4j2配Listener
<context-param> <param-name>log4jConfiguration</param-name> <param-value>classpath:log4j2.xml</param-value> </context-param>
5、在HelloSpringController.java使用
import java.util.logging.Logger; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloSpringController { private static Logger logger = Logger.getLogger(HelloSpringController.class.getName()); String message = "Welcome to Spring MVC!"; @RequestMapping("/hello") public ModelAndView showMessage(@RequestParam(value = "name", required = false, defaultValue = "Spring") String name) { logger.info("this is a log"); ModelAndView mv = new ModelAndView("hellospring");//指定视图 mv.addObject("message", message); mv.addObject("name", name); return mv; } }
6、结果
7、可以通过修改log4j2.xml文件中level字段的值,观察一下日志输出的结果
在log4j2中, 共有8个级别,按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少
另外log4j2如何将日志输出到文件的简单配置如下:
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <properties> <property name="error-file">./log4j2learn.txt</property> <Property name="console-pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%level] %logger{36} - %msg%n</Property> </properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> <File name="LogFile" fileName="${error-file}" createOnDemand="true"> <PatternLayout pattern="${console-pattern}" /> </File> </Appenders> <Loggers> <Root level="trace"> <AppenderRef ref="Console"/> <AppenderRef ref="LogFile"/> </Root> </Loggers> </Configuration>
参考:https://blog.csdn.net/weixin_34203426/article/details/93118648