本文共 3961 字,大约阅读时间需要 13 分钟。
create table `log`( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `userIP` varchar(255) DEFAULT NULL, `actionClassName` varchar(6000) DEFAULT NULL, `actionDate` varchar(255) DEFAULT NULL, `result` varchar(6000) DEFAULT NULL, PRIMARY KEY(`id`) )ENGINE=InnoDB AUTO_INCREMENT =1 DEFAULT CHARSET = utf8;
org.apache.logging.log4j log4j-api 2.11.1 org.apache.logging.log4j log4j-core 2.11.1 com.alibaba druid 1.0.14
package com.hly.sirius.filter;/** * @author :hly * @github :github.com/SiriusHly * @blog :blog.csdn.net/Sirius_hly * @date :2018/10/2 */@WebFilter(filterName = "VisitorFilter",urlPatterns = "/index")public class VisitorFilter extends OncePerRequestFilter { private static Logger logger = LogManager.getLogger(VisitorFilter.class); @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { HttpSession session = request.getSession(); String userId = (String) session.getAttribute("userId"); String userIP = request.getRemoteUser(); ThreadContext.put("userId",userId); ThreadContext.put("userIP",userIP); System.err.println("登录用户:"+userId); System.err.println("登录IP:"+userIP); logger.error("用户:"+userId); }}
存取要保存到数据库的值
ThreadContext.put("userIP",userIP);
通过配置文件取得值,保存到数据库
在Application开启Servlet扫描注解
@ServletComponentScan(basePackages = {"com.hly.sirius.filter"})
package com.hly.sirius.config;/** * @author :hly * @github :github.com/SiriusHly * @blog :blog.csdn.net/Sirius_hly * @date :2018/10/2 */public class ConnectionFactoryConfig { private DruidDataSource dataSource; private static ConnectionFactoryConfig connectionFactoryConfig; private Connection getConnection() throws SQLException { System.err.println("实例化"); Properties properties = new Properties(); String user = "root"; String password = "roof"; String url = "jdbc:mysql://localhost:3306/sirius?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"; String driverClassName = "com.mysql.jdbc.Driver"; properties.put("driverClassName",driverClassName); properties.put("url",url); properties.put("username",user); properties.put("password",password); try { dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) { try { init(); } catch (Exception e2) { } } return dataSource.getConnection(); } public static Connection getDatabaseConnection() throws SQLException { if(connectionFactoryConfig==null){ connectionFactoryConfig = new ConnectionFactoryConfig(); } return connectionFactoryConfig.getConnection(); } public void init(){ try { if (dataSource != null) dataSource.close(); } catch (Exception e) { } }}
%d [%t] %-5level %logger{36} - %msg%n