天天看点

日志

pom.xml

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

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.group</groupId>
  <artifactId>WindDevelop</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>WindDevelop Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <slf4j.version>1.7.21</slf4j.version>
    <logback.version>1.1.7</logback.version>
  </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.10.RELEASE</version>
        </dependency>
        
         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency> 
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>

    </dependencies>
<build>
    <finalName>WindDevelop</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.7.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>           

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>     
  <display-name>Archetype Created Web Application</display-name>
   <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:logback.xml</param-value>
    <listener>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener>
  </context-param> 
  
  <filter>
      <filter-name>WindFilter</filter-name>
      <display-name>WindFilter</display-name>
      <description></description>
      <filter-class>net.web.WindFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>WindFilter</filter-name>
      <url-pattern>/yes/enterpage.jsp</url-pattern>
  </filter-mapping>
  
  <servlet>
      <servlet-name>WindServlet</servlet-name>
      <display-name>WindServlet</display-name>
      <description></description>
      <servlet-class>net.web.WindServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>WindServlet</servlet-name>
      <url-pattern>/yes/enterpage.jsp</url-pattern>
  </servlet-mapping>

</web-app>           

logback.xml

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

<configuration>
<property name="LOG_HOME" value="D:/OxygenWork/WindDevelop/logs/" />
<!-- console 控制台输出 日志 -->
<!-- log文件保存日志 -->
<appender name="consoleOut" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
</appender>
<appender name="fileOut"
    class="ch.qos.logback.core.rolling.RollingFileAppender">

    <!-- 设置滚动策略 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--日志文件输出的文件名 -->
        <fileNamePattern>${LOG_HOME}/WindWeb.log.%d{yyyy-MM-dd}.log
        </fileNamePattern>
        <!--日志文件保留天数 -->
        <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <!-- 日志文件中的输出格式 -->
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
    <!--日志文件最大的大小 -->
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>30MB</MaxFileSize>
    </triggeringPolicy>
</appender>

<!-- 日志输出级别 ,哪些appender生效?这里配置 -->
<root level="ALL">
    <appender-ref ref="consoleOut" />
    <appender-ref ref="fileOut" />
</root>

</configuration>           
package net.infopack;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogTest {
    
    final static Logger logger = LoggerFactory.getLogger(LogTest.class);
    
    public void fLogCheck(String str) {
        
        //String s1 = str + "shut the fk up!";

    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        logger.info("logback 成功了");
        logger.error("logback 成功了");
        logger.debug("logback 成功了");
        logger.info("-----------------------");
        
    }

}
           
package net.infopack;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

public class InfoWrapper extends HttpServletRequestWrapper {

    private Map<String, String[]> paramMap;
    
    public InfoWrapper(HttpServletRequest request) {
        super(request);
        paramMap = new HashMap<>();//定义
        paramMap.putAll(request.getParameterMap());//初始化
    }
    
    @Override
    public String getParameter(String name) {
        String[] values = paramMap.get(name);
        if (values == null || values.length == 0) {
            return null;
        }
        return values[0];
    }

    @Override
    public String[] getParameterValues(String name) {
        return paramMap.get(name);
    }

    @Override
    public Enumeration<String> getParameterNames() {
        return new Enumeration<String>() {
            private Iterator<String> iterator = paramMap.keySet().iterator();

            @Override
            public boolean hasMoreElements() {
                return iterator.hasNext();
            }

            @Override
            public String nextElement() {
                return iterator.next();
            }
        };
    }

    @Override
    public Map<String, String[]> getParameterMap() {
        return paramMap;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}           
日志