springMV配置日志log4j,以及在linux服务器中查询日志

在上篇文章中,我们已经成功搭建了一套springMVC工程,现在我们继续给这个工程添加日志,用来解决以后开发测试过程中定位问题。

一、使用log4j需要配置log4j文件,有xml和properties两种文件,这里我配置log4j,路径和代码如下:



代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- Appenders -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n" />
		</layout>
	</appender>
	
	<appender name="business" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="File" value="${catalina.home}/logs/business/business.log" />   
      <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
      <layout class="org.apache.log4j.PatternLayout">   
       <param name="ConversionPattern"   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n" />  
      </layout> 
  </appender>  
  
  <appender name="interface" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="File" value="${catalina.home}/logs/interface/interface.log" />   
      <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
      <layout class="org.apache.log4j.PatternLayout">   
       <param name="ConversionPattern"   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n" />  
    	</layout> 
  </appender> 
	
	<!-- Application Loggers -->
	<logger name="com.test">
		<level value="info" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>	
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<logger name="org.springframework.jdbc">
		<level value="info" />
	</logger>

	<logger name="org.mybatis.spring">
		<level value="info" />
	</logger>
	<logger name="java.sql">
		<level value="info" />
	</logger>
	
    <logger name="interfaceLog" additivity="false">  
        <level value ="info"/>
        <appender-ref ref="interface" />  
         <!-- 接口日志同时输出到控制台,上线时可以删除此句,自己调试时可以保留 -->
         <appender-ref ref="console" />   
    </logger>  	
    
	<!-- Root Logger -->
	<root>
		<priority value="info" />
		<appender-ref ref="console" />
		<!-- 控制台日志同时输入到业务日志文件 -->
		<appender-ref ref="business" />
	</root>
	
</log4j:configuration>
至于log4j中配置信息下面做分析

二、现在需要在pom.xml中配置log4j需要的jar包:


<!-- log4j -->
		  <dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<!-- log4j -->
三、在web.xml中加载即可,并添加监听配置

<!-- log4j配置 -->  
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.xml</param-value>
    </context-param>
    <!-- log4j监听设置--> 
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

四、完成配置,然后我们在testcontroller中添加如下代码添加并测试:

//打印日志
private static final Logger logger = Logger.getLogger(TestController.class); 

 logger.info(" [TestController] [index_jsp][success]");

logger.error("[TestController] [index_jsp][error]",e);  



然后启动tomcat,访问浏览器:我们能在控制台看到访问成功的日志:


是不是很简单?当然这只是在本地环境配置日志和查询日志,在一般开发中,我们需要在服务器上查询日志定位问题。于是我这里在机器上安装了虚拟机,并配置jdk和tomcat(这里是模拟linux服务器部署项目,暂不多做介绍)。我们通过maven方便打包之后(第一篇文章中讲解过),直接将war放到我的虚拟机上(192.168.134.132地址上)

的tomcat/webapp下,重启tomcat,访问浏览器:


访问成功:

然后我们查看tomcat中logs下的catalina.out日志,此日志为大日志,包含控制台日志:

$vim catalina.out


(这里暂不介绍linux的指令及部署jdk,tomcat等操作)


六、回头看看我们配置的log4j.xml文件

这里不仅有1-控制台日志,还添加了2-业务日志和3-接口日志,业务日志和接口日志会根据4,5的路径,生成该日志的以方便查阅。


用法如下:


1和2分别代表定义业务日志和接口日志,根据业务需求自己选择,3为使用该日志。

猜你喜欢

转载自blog.csdn.net/yufeng005/article/details/78215328