单独使用Log4j2插件,不借助其它的jar,写日志信息

小白又来记录心得了

对于小白来说,好难哇,控制台输出很简单,但是想输出到文件里面,研究测试了好久。

使用依赖包:

    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.11.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.11.1</version>
    </dependency>

初始化Log对象:

 private static org.apache.logging.log4j.Logger logger = org.apache.logging.log4j.LogManager.getLogger(MyLogHelper.class);

xml文件配置:

文件名为log4j2.xml直接存放在资源文件夹resources下面

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">

    <properties>
        <property name="LOG_HOME">logs</property>
        <property name="LOG_BACKUP">backup</property>
        <property name="FILE_NAME">log</property>
    </properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level - %msg%n"/>
        </Console>
        <!--name写MyLogHelper为自己封装的类名-->
        <RollingFile name="MyLogHelper" fileName="${LOG_HOME}/${FILE_NAME}.log"
              filePattern="${LOG_HOME}/${LOG_BACKUP}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log"
              immediateFlush="true" append="true">
            <PatternLayout>
                <!--
                #pattern格式的简单介绍:
                    #%d{HH:mm:ss.SSS} 表示输出到毫秒的时间,如果不加大括号默认是到毫秒级别
                    #%r:程序启动时间毫秒数
                    #%t:输出日志线程名称
                    #%-5p:日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补空格
                    #%c:输出日志的logger实例名称,取决于getLogger(String name)中的name属性,即打印logger时的tag;大括号中的2表示显示的层数。例如,对于name为com.test.be.Main的logger,配置为%c{2}显示be.Main,配置为%c{1}则显示Main。
                    #%m:日志内容描述
                    #%n:换行,一般和%m联合使用:%m%n
                    #%l:语句所在的详细位置, 包括类名、方法名、文件名、行号
                    #%L:行号,注意和上面小写的区别,这个只有行号,不包含其他信息
                    #%F:所在的类文件名,如Main.java
                    #%M:所在方法名
                -->
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 每个日志文件最大5MB 默认10M-->
                <SizeBasedTriggeringPolicy size="15MB" />
                <!--一天备份一个文件,配合filePattern使用-->
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>

            <!--最多保存20个备份文件-->
            <DefaultRolloverStrategy max="20" />
        </RollingFile>
    </Appenders>
    <Loggers>
         <!-- com.tyyq.log为自己封装写日志类包路径, MyLogHelper为自己封装的类名-->
        <logger name="com.tyyq.log" level="trace" additivity="true">
            <appender-ref ref="MyLogHelper" />
        </logger>
        <Root level="ERROR">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>
  MyLogHelper.error("我报错拉!");
  MyLogHelper.warn("这是我的警告!");
  MyLogHelper.info("这是我说明哦.....");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT流渊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值