zoukankan      html  css  js  c++  java
  • Eclipse+Maven构建SpringMVC+log4j2

    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

  • 相关阅读:
    python wmi模块 获取windows内部信息
    Django +uwsgi+python3+nginx + mysql 部署
    POJ 1125
    POJ 1129
    POJ 1126
    POJ 1118
    POJ 1102
    POJ 1101
    POJ 1111
    POJ 1088
  • 原文地址:https://www.cnblogs.com/wylwyl/p/13273428.html
Copyright © 2011-2022 走看看