log4j 记录日志,数据插入到数据库

      

本文未写拦截器 ,   利用session 将信息存到  MDC中


log4j.properties  配置文件

log4j.rootLogger = DEBUG, DB

     log4j.rootLogger=INFO,db语法为:
     log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
     level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
     appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
     例如:log4j.rootLogger=info,A1,B2,C3 配置了3个输出地方,这个名字可以任意(如上面的db),但必须与我们在后面进行的设置名字对应;


log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
/* 配置数据库连接池 */
log4j.appender.DB.driver=com.mysql.jdbc.Driver
/* 加载MySQL 驱动*/
log4j.appender.DB.URL=jdbc:mysql://localhost:3306/space_custom?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useUnicode=true&useSSL=false
 /* 数据库 URL*/
log4j.appender.DB.user=root 
/* 数据库链接名 */
log4j.appender.DB.password=root
/* 数据库密码 */
log4j.appender.DB.sql=insert into es_sys_log (user_login_id,message,log_level,detial,gmt_create,gmt_modified) values ('%X{user_login_id}','%M','%p','%m','%d{yyyy-MM-dd HH:mm:ss}','%d{yyyy-MM-dd HH:mm:ss}')
/* SQL 语句 */
log4j.appender.DB.layout=org.apache.log4j.PatternLayout

/* 提供  %X %p %m ... 等方法*/

 

Class 文件

public class SystemtLogger {

   //调试logger

    //日志 sys
    protected static Logger sysLogger = Logger.getLogger(SystemtLogger.class);
    /**
     * 日志  -> sysLog
     * @param obj
     */
    public static void sysInfo(Object obj){
        sysLogger.info(obj);
    }
    
}

记录登录事件


public AjaxResponse userLogin(String userId, String pwd) {
   / * do  something about login */
    
   
    MDC.put("user_login_id","存放用户的id");
    SystemtLogger.sysInfo("测试一下! 我记录的是登陆!");
    

   return ajaxResponse;
}

SQL 文件 :

DROP TABLE IF EXISTS `es_sys_log`;
CREATE TABLE `es_sys_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键,自增列',
  `user_login_id` bigint(20) DEFAULT NULL COMMENT '生成日志的用户,关联账号表',
  `message` varchar(255) DEFAULT NULL COMMENT '日志信息',
  `log_level` varchar(20) DEFAULT NULL COMMENT '日志级别',
  `detial` varchar(1024) DEFAULT NULL COMMENT '日志详情',
  `gmt_create` datetime DEFAULT NULL COMMENT '记录创建时间',
  `gmt_modified` datetime DEFAULT NULL COMMENT '记录修改时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


运行结果:

log4j 记录日志,数据插入到数据库_第1张图片

你可能感兴趣的:(Java)