美文网首页
maven下log4j配置并保存数据到数据库

maven下log4j配置并保存数据到数据库

作者: 帅气的小男孩q | 来源:发表于2018-07-24 14:33 被阅读0次

1,pom.xml下jar包引入配置 

2,log4j.properties配置

log4j.rootLogger=WARN,stdout,logDailyFile,logDB

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logDailyFile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.logDailyFile.File=${jeedw.webapp.root}/WEB-INF/logs/h5.log

log4j.appender.logDailyFile.DatePattern=.yyyy-MM-dd

log4j.appender.logDailyFile.layout=org.apache.log4j.PatternLayout

log4j.appender.logDailyFile.layout.ConversionPattern=%d %p [%c] wang- <%m>%n

log4j.appender.logDailyFile.Encoding =UTF-8

###----------------- appender:数据库配置 -----------------

log4j.appender.logDB= org.apache.log4j.jdbc.JDBCAppender

log4j.appender.logDB.Driver= com.mysql.jdbc.Driver

log4j.appender.logDB.URL= jdbc:mysql://10.1.84.232:3306/shiro?useUnicode=true&characterEncoding=utf-8 编码格式 并请用&符,不要用&

log4j.appender.logDB.User= root

log4j.appender.logDB.Password= 52dj1314

log4j.appender.logDB.sql=insert into logs_info (host,user_name,create_time,logger,level,message) values ("%X{host}","%X{name}","%d{yyyy-MM-dd HH:mm:ss}","%c","%p","%m")

log4j.appender.logDB.layout= org.apache.log4j.PatternLayout

3,spring-config-shiro.xml配置

4,web.xml配置

5,LoginLogsFilter类

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import org.apache.log4j.MDC;

import org.apache.shiro.SecurityUtils;

import org.apache.shiro.session.Session;

import org.apache.shiro.subject.Subject;

public class LoginLogsFilter implements Filter{

    @Override

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

    Subject subject = SecurityUtils.getSubject(); 

    Session session = subject.getSession();

    String host = session.getHost();

    MDC.put("name", (SecurityUtils.getSubject().getPrincipal() != null) ? SecurityUtils.getSubject().getPrincipal() : "");

    MDC.put("host", host !=null ? host : "");

    try {

            chain.doFilter(request, response);

        } finally {

            MDC.remove("name");

        }

    }

    @Override

    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override

    public void destroy() {

    }

}

6,调用

    private static final Logger logger = Logger.getLogger(IndexController.class);

    logger.error("登录失败");

相关文章

网友评论

      本文标题:maven下log4j配置并保存数据到数据库

      本文链接:https://www.haomeiwen.com/subject/dsgemftx.html