log4j 日志输出数据库

一:添加依赖jar

1
2
3
4
5
6
7
8
9
10
11
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
 
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

 二:配置log4j

1
2
3
4
5
6
7
8
log4j.rootLogger = stdout,jdbc
 
log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.jdbc.driver=com.mysql.jdbc.Driver
log4j.appender.jdbc.URL=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true&serverTimezone=UTC
log4j.appender.jdbc.user=root
log4j.appender.jdbc.password=
log4j.appender.jdbc.sql=insert into log_info(level,category,thread,time,location,note) values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m')

 三:创建数据库表结构

复制代码
@Test
    public void jdbcCreateTable() throws Exception {
        Connection connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true&serverTimezone=UTC", "root", "");
        
        Class.forName("com.mysql.cj.jdbc.Driver");
        
        connection.createStatement().execute("CREATE TABLE `log_info` ( "
                + "  `Id` int(11) NOT NULL AUTO_INCREMENT, "
                + "  `level` varchar(255) NOT NULL DEFAULT '' COMMENT '优先级', "
                + "  `category` varchar(255) NOT NULL DEFAULT '' COMMENT '类目', "
                + "  `thread` varchar(255) NOT NULL DEFAULT '' COMMENT '进程', "
                + "  `time` varchar(30) NOT NULL DEFAULT '' COMMENT '时间', "
                + "  `location` varchar(255) NOT NULL DEFAULT '' COMMENT '位置', "
                + "  `note` text COMMENT '日志信息', "
                + "  PRIMARY KEY (`Id`) "
                + ")");
    }
复制代码

四:添加测试代码

复制代码
/***
 * 
 * @author zhanchaohan
 *
 */
public class PrintTest {
    private static Logger logger = Logger.getLogger(PrintTest.class);

    public static void main(String[] args) throws Exception {
        PropertyConfigurator.configure(PrintTest.class.getResource("/log4j.properties"));
        
        logger.info("普通Info信息");
        logger.debug("调试debug信息");
        logger.error("报错error信息");
        logger.warn("警告warn信息");
        logger.fatal("严重错误fatal信息");
    }
}
复制代码

 

posted @   Jachs  阅读(167)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
我拯救了全世界,全世界却抛弃了我。