前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java日志框架(二)Log4j的学习,这个是什么,如何配置输出到文件,数据库

java日志框架(二)Log4j的学习,这个是什么,如何配置输出到文件,数据库

作者头像
一写代码就开心
发布于 2021-07-16 03:23:51
发布于 2021-07-16 03:23:51
76500
代码可运行
举报
文章被收录于专栏:java和pythonjava和python
运行总次数:0
代码可运行

目录

Log4j是什么

组件

Loggers(日志记录器)

Appenders(输出控制器)

Layouts(日志格式化)

日志输出格式

利用例子解读

1 创建maven项目,导入log4j依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

    </dependencies>

2 写代码,入门

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.junit.Test;


public class Log4jTest {

    @Test
    public void test(){
//        加载初始化配置
        BasicConfigurator.configure();

        // 创建日志记录器对象,不是直接new,因为这个类受保护,所以只能使用静态方法进行创建对象
        Logger logger = Logger.getLogger(Log4jTest.class);
        // 日志记录输出
        logger.info("dddddd");


    }
}

log4j有默认的配置,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        BasicConfigurator.configure();

这个是加载默认的配置,不写这个会报错,我们看这个源码里面是什么

这个配置里面是默认的控制台输出,输出格式也有默认的

日志级别

如何利用配置文件

源码里面,这个文件可以配置哪些?

也就是项目一启动,就会加载log4j.properties这个文件,就会加载里面的这些属性。

CONSOLE 这个是自己定义的,你也可以改名字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.rootCategory=info

# 表示以控制台方式输出
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# 表示输出的格式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%n
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.rootCategory=info,CONSOLE,LOGFILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%n

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/axis.log
log4j.appender.LOGFILE.Append=true


PatternLayout 这个是自定义的
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %c-%d-%m%n

将日志输出到文件(FileAppender)

我们再配置文件里面写 关于输出到文件的配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.file.file = D://test//log4j.log
log4j.appender.file.encoding = UTF-8

将日志输出到文件(RollingFileAppender)

按照文件大小

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.rollingFile.file = D://log4j.log
log4j.appender.rollingFile.maxFileSize = 1MB
log4j.appender.rollingFile.maxBackupIndex = 5

将日志输出到文件(DailyRollingFileAppender)

按时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyRollingFile.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.dailyRollingFile.file = D://log4j.log
log4j.appender.dailyRollingFile.datePattern = '.'yyyy-MM-dd HH-mm-ss

将日志输出到数据库中

首先在数据库中创建日志数据

导入数据库依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#保存到数据库
log4j.appender.logDb=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDb.layout=org.apache.log4j.PatternLayout
log4j.appender.logDb.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.logDb.Driver = com.mysql.jdbc.Driver
log4j.appender.logDb.URL = com.mysql.jdbc.Driver
log4j.appender.logDb.User = root
log4j.appender.logDb.Password = 123456
log4j.appender.logDb.Sql = insert into tbl_log(id,name,createtime,level,filename) values()

配置一下就可以

自定义logger

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/07/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)
JUL全称Java util Logging是java原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。
ha_lydms
2023/08/09
1.5K0
快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)
Log4J日志框架
log4J是Apache下的一款开源的日志框架,通过在项目中使用log4j,我们可以控制日志输出的位置。我们可以控制每一条日志的输出格式,通过定义日志输出级别,可以更灵活的控制日志的输出过程;
暴躁的程序猿
2022/03/24
3590
Log4J日志框架
Log4J使用快速入门
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
卡尔曼和玻尔兹曼谁曼
2019/01/25
7260
【系统日志】log4j配置学习总结
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。 Logger Loggers组件被分为五个级别: DEBUG INFO WARN ERROR FATAL 各个级别的顺序是这样那个的: DEBUG < INFO < WARN < ERROR < FATAL 可以
冷冷
2018/02/08
5980
使用log4j配置不同文件输出不同内容
敲代码中很不注意写日志,虽然明白很重要。今天碰到记录日志,需要根据内容分别输出到不同的文件。 参考几篇文章: 感觉最详细:http://blog.csdn.net/azheng270/article/details/2173430/ 喜欢博客园的日志风格,第一篇参考文章就是它:http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html 写好的模板,直接修改就可以,虽然不满足我的需求:http://blog.csdn.net/rsun1/
Ryan-Miao
2018/03/13
3.1K0
使用log4j配置不同文件输出不同内容
全网最全、最细致的Java日志框架以及门面技术。
👨‍🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。 ☠️每日毒鸡汤:生活是世上最罕见的事情,大多数人只是存在,仅此而已。 👋大家好!我是你们的老朋友Java学术趴,今天继续给大家分享小趴Java日志框架。对于一个应用程序来说
Java学术趴
2021/09/10
4.2K0
Java日志框架学习--上
每一种日志框架都有自己单独的API,要使用对应的框架就要使用对应的API,这就大大的增加了应用程序代码对于日志框架的耦合性。
大忽悠爱学习
2022/05/15
5020
Java日志框架学习--上
Java日志体系(log4j)
log4j 1.1 简介 Log4j是一个由Java编写可靠、灵活的日志框架,是Apache旗下的一个开源项目;现如今,Log4j已经被移植到了C、C++、Python等语言中,服务更多的Develo
贾博岩
2018/05/11
2.2K0
log4j使用方法_pipe使用教程
地址:http://www.codeceo.com/log4j-usage.html
全栈程序员站长
2022/10/04
6160
log4j使用方法_pipe使用教程
《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
  自动化测试中如何输出日志文件。任何软件,都会涉及到日志输出。所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件。开发通过看日志文件,知道这个崩溃产生的原因,至少知道触发崩溃的条件是什么。同样在自动化测试框架设计,日志文件输出是不可或缺的。我们习惯通过日志输出来记录我们用例执行的情况。当然测试报告更直观,但是如果出现问题,往往是日志文件更有效。这里我们介绍如何通过Log4j.jar来帮助我们输出一个日志。
北京-宏哥
2022/04/27
7350
《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
Log4j学习及其深入(从浅入深)
通常,我们写代码的过程中,免不了要输出各种调试信息。在没有使用任何日志工具之前,都会使用 System.out.println 来做到。 这么做直观有效,但是有一系列的缺点:
默 语
2024/11/20
1870
Log4j学习及其深入(从浅入深)
还不了解,日志框架吗?
经过上面,我们已经知道常用的日志框架有:Log4j JUL JCL Slf4j Logback Log4j2
Java_慈祥
2024/08/06
2680
还不了解,日志框架吗?
Java接口自动化之log4j日志框架
上一篇Java接口自动化系列文章:Java接口自动化之IDEA创建及运行maven项目,主要介绍如何用IDEA创建maven项目、maven项目结构介绍及maven项目运行实战。
可可的测试小栈
2021/02/07
9370
Java接口自动化之log4j日志框架
java日志框架之Log4j
Java微观世界
2025/01/21
1980
java日志框架之Log4j
log4j.xml配置详解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:con
一个会写诗的程序员
2018/08/17
6540
【Java】Log4j日志
通过PatternLayout实现类ConversionPattern属性可以设置具体自定义布局。布局格式采用类似 C
陶然同学
2023/02/24
5320
【Java】Log4j日志
springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;
noteless
2018/09/11
1K0
log4j使用教程_log4js
Log4J 是 Apache 的一个开源项目(官网 http://jakarta.apache.org/log4j),通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。
全栈程序员站长
2022/10/04
8230
log4j使用教程_log4js
Log4j 学习笔记(四)log4j的配置文件
此节分享xml形式的log4j.properties。 1. 将日志输出到控制台 log4j.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP
青山师
2023/05/04
7280
Java Web log4j (日志)
private static Logger logger=Logger.getLogger(Example.class);
Hongten
2018/09/13
8270
相关推荐
快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验