log4j 日志文件存储数据库的解决方案一(配置文件中写sql语句)

log4jmysql.properties:


log4j.rootLogger=ERROR,console,db

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n

log4j.appender.db.layout=org.apache.log4j.PatternLayout
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.driver=com.mysql.jdbc.Driver
log4j.appender.db.URL=jdbc:mysql://192.168.199.132:3306/mind?useUnicode=true&characterEncoding=UTF-8&useSSL=false
log4j.appender.db.user=root
log4j.appender.db.password=root
log4j.appender.db.sql=insert into t_login (c_id, c_username, c_password) VALUES ('%X{userId}', '%X{username}', '%X{password}')
# log4j.appender.db.sql=insert into t_login (c_username, c_password) VALUES ('%d{yyyy-MM-dd hh:mm:ss}', '%c %p %m %n')

log4jtest1.java

package com.phoenix.javatest.log4jtest;

import com.phoenix.javatest.Log4jTest;
import org.apache.log4j.MDC;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;

import javax.xml.parsers.DocumentBuilderFactory;
import java.io.InputStream;
import java.util.Properties;

/**
 * Created by Lovell on 24/10/2016.
 */
/*
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@  @@@@@@@@        @@  @@@@@@@  @@        @@  @@@@@@@@@  @@@@@@@@@@
 @@@@  @@@@@@@@  @@@@  @@@  @@@@@  @@@  @@@@@@@@  @@@@@@@@@  @@@@@@@@@@
 @@@@  @@@@@@@@  @@@@  @@@@  @@@  @@@@       @@@  @@@@@@@@@  @@@@@@@@@@
 @@@@  @@@@@@@@  @@@@  @@@@@  @  @@@@@  @@@@@@@@  @@@@@@@@@  @@@@@@@@@@
 @@@@        @@        @@@@@@   @@@@@@        @@        @@@        @@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 */

public class Log4jtest1 {
    private static Logger logger = LoggerFactory.getLogger(Log4jtest1.class);
    private static final String  LOG_CONFIG_FILE = "/log4jmysql.properties";

    @Test
    public void test1() throws Exception {
        InputStream in = null;
        try {
            // 加载配置文件
            in = Log4jTest.class.getResourceAsStream(LOG_CONFIG_FILE);
            if (LOG_CONFIG_FILE.endsWith(".xml")) {
                // 载入XML格式的配置文件
                Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);

                DOMConfigurator.configure(doc.getDocumentElement());
                logger.error("xml logger error ==>");
            } else {
                // 载入properties格式的配置文件
                Properties props = new Properties();
                props.load(in);                             // 属性加载
                PropertyConfigurator.configure(props);      // 属性配置
            }
            String userId = "11";
            String username = "langzixiaoyaoyou";
            String password = "123456";
            MDC.put("userId", userId);
            MDC.put("username", username);
            MDC.put("password", password);
            logger.info("存入MySQL数据库用户ID[{}],用户名【{}】,用户密码【{}】" + userId, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

参考:http://www.iteye.com/problems/91158

http://www.cnblogs.com/yinliang/p/4173025.html

http://avaj.iteye.com/blog/246088

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VCHH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值