Log4j2发送邮件通知

Log4j2发送邮件通知

		自定义工具log-custom  github https://github.com/2366597634/log-custom.git

简介

原版每出现一次定义的异常,都会发送一次邮件.现修改为根据策略来发送邮件,仿照Redis中的RDB快照技术.定义Strategies策略,interval是时间限制,单位秒,entry是数量限制.

引入包

<dependency>
    <groupId>cn.kebena</groupId>
    <artifactId>log-custom</artifactId>
    <version>1.0-RELEASE</version>
</dependency>

忽略Spring本身的logging

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
        <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

导入log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> ${sys:user.home}/logs/项目名
    <!--Error级别日志输出-->
    <RollingRandomAccessFile name="ErrorFile"
                             fileName="${LOG_HOME}/${date:yyyyMMdd}/error.log"
                             filePattern="${LOG_HOME}/${date:yyyyMMdd}/error-%d{yyyyMMdd}-%i.log">
        <Filters>
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
        </Filters>
        <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss} %-5level [%t] %F-%M-%L  %msg%n"/>
        <Policies>
            <TimeBasedTriggeringPolicy/>
            <SizeBasedTriggeringPolicy size="10MB"/>
        </Policies>

    </RollingRandomAccessFile>

    <YunlspEmail name="Mail" subject="邮件标题" to="收件人邮箱" from="发件人邮箱"
            smtpHost="smtp.mxhichina.com"  smtpPort="25" smtpPassword="发件人邮箱密码" smtpUsername="发件人邮箱"
            bufferSize="30">

        <HTMLLayout charset="UTF-8" title="邮件标题" locationInfo="true"/>

        <Filters>
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
        </Filters>

        <!-- 最先执行的策略放在最上面 -->
        <Strategies>
            <StmpStrategy interval="60" entry="1"/>
            <StmpStrategy interval="120" entry="10"/>
            <StmpStrategy interval="180" entry="1"/>
        </Strategies>
    </YunlspEmail>

</Appenders>

<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<Loggers>
    <AsyncLogger name="包名" level="info"  includeLocation="true" additivity="false">
        <AppenderRef ref="Console"/>
        <AppenderRef ref="InfoFile"/>
        <AppenderRef ref="WarnFile"/>
        <AppenderRef ref="ErrorFile"/>
        <AppenderRef ref="ConsoleFile"/>
        <AppenderRef ref="Mail"/>
    </AsyncLogger>
    <Root level="info">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>

引入config

在application.yml里配置

logging:
  config: classpath:config/log4j2.xml
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值