1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!--<property name="logname" value="test"/>-->
  4. <!--获取配置中的参数信息-->
  5. <springProperty scope="context" name="logname" source="spring.application.name"/>
  6. <springProperty scope="context" name="smtpHost" source="email.smtpHost"/>
  7. <!--<springProperty scope="context" name="smtpPort" source="email.smtpPort"/>-->
  8. <springProperty scope="context" name="to" source="email.to"/>
  9. <springProperty scope="context" name="from" source="email.from"/>
  10. <springProperty scope="context" name="username" source="email.username"/>
  11. <springProperty scope="context" name="password" source="email.password"/>
  12. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  13. <target>System.out</target>
  14. <encoder>
  15. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  16. </encoder>
  17. </appender>
  18. <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  19. <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高, 所以我们使用下面的策略,可以避免输出 Error 的日志-->
  20. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  21. <!--过滤 INFO-->
  22. <level>INFO</level>
  23. <!--匹配到就允许-->
  24. <onMatch>ACCEPT</onMatch>
  25. <!--没有匹配到就禁止-->
  26. <onMismatch>DENY</onMismatch>
  27. </filter>
  28. <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
  29. <File>/home/logs/${logname}-info.log</File>
  30. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  31. <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
  32. <fileNamePattern>/home/logs/${logname}-info-%d{yyyy-MM-dd}.log</fileNamePattern>
  33. <!--只保留最近30天的日志-->
  34. <maxHistory>30</maxHistory>
  35. </rollingPolicy>
  36. <encoder>
  37. <charset>UTF-8</charset>
  38. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  39. </encoder>
  40. </appender>
  41.  
  42. <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  43. <!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter-->
  44. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  45. <level>WARN</level>
  46. </filter>
  47. <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
  48. <File>/home/logs/${logname}-warn.log</File>
  49. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  50. <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
  51. <fileNamePattern>/home/logs/${logname}-warn-%d{yyyy-MM-dd}.log</fileNamePattern>
  52. <!--只保留最近30天的日志-->
  53. <maxHistory>30</maxHistory>
  54. </rollingPolicy>
  55. <encoder>
  56. <charset>UTF-8</charset>
  57. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  58. </encoder>
  59. </appender>
  60.  
  61. <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  62. <!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter-->
  63. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  64. <level>Error</level>
  65. </filter>
  66. <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
  67. <File>/home/logs/${logname}-error.log</File>
  68. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  69. <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
  70. <fileNamePattern>/home/logs/${logname}-error-%d{yyyy-MM-dd}.log</fileNamePattern>
  71. <!--只保留最近30天的日志-->
  72. <maxHistory>30</maxHistory>
  73. </rollingPolicy>
  74. <encoder>
  75. <charset>UTF-8</charset>
  76. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  77. </encoder>
  78. </appender>
  79.  
  80. <!--邮件发送-->
  81. <appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
  82. <!--smtp 服务器-->
  83. <smtpHost>smtp.qq.com</smtpHost>
  84. <!--port-->
  85. <smtpPort>25</smtpPort>
  86. <!-- 发给谁的邮件列表,多个人用逗号分隔 -->
  87. <to>942582838@qq.com</to>
  88. <!--发件人,添加邮箱和上面的username保持一致-->
  89. <from>942582838@qq.com</from>
  90. <subject>错误异常:%logger - %msg</subject>
  91. <!--发件人的邮箱-->
  92. <username>942582838@qq.com</username>
  93. <!--发件人的邮箱密码-->
  94. <password>zahggefrblqpbfgf</password>
  95. <SSL>false</SSL>
  96. <!--是否异步-->
  97. <asynchronousSending>true</asynchronousSending>
  98. <layout class="ch.qos.logback.classic.PatternLayout">
  99. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  100. </layout>
  101. <cyclicBufferTracker class = "ch.qos.logback.core.spi.CyclicBufferTracker" >
  102. <bufferSize> 1 </bufferSize>
  103. </cyclicBufferTracker>
  104. <!--过滤器-->
  105. <!-- 这里采用等级过滤器 指定等级相符才发送 -->
  106. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  107. <level>ERROR</level>
  108. <onMatch>ACCEPT</onMatch>
  109. <onMismatch>DENY</onMismatch>
  110. </filter>
  111. </appender>
  112.         
  113. <root level="INFO">
  114. <appender-ref ref="CONSOLE"/>
  115. <appender-ref ref="FILE_INFO"/>
  116. <appender-ref ref="FILE_WARN"/>
  117. <appender-ref ref="FILE_ERROR"/>
  118. <!-- log error send EMAIL -->
  119. <appender-ref ref="EMAIL"/>
  120. </root>
  121.  
  122. </configuration>

pom 依赖:

  1. <dependency>
  2. <groupId>javax.mail</groupId>
  3. <artifactId>javax.mail-api</artifactId>
  4. <version>1.6.2</version>
  5. </dependency>
  6.  
  7. <!-- 实际上用到的是这个..!!! -->
  8. <dependency>
  9. <groupId>com.sun.mail</groupId>
  10. <artifactId>javax.mail</artifactId>
  11. <version>1.6.2</version>
  12. </dependency>

logo back 日志 发送邮件的更多相关文章

  1. logback错误日志发送邮件

    logback 一.介绍 logback是由log4j的作者开发的一个开源日志组件,用以替代log4j. logback由3个部分组成: ♦ logback-core (基础模块) ♦ logback ...

  2. 获取Android崩溃crash信息并写入日志发送邮件

    一.实现Thread.UncaughtExceptionHandlerUnChecked异常发生时,由于没有相应的try…catch处理该异常对象,所以Java运行环境将会终止,程序将退出,也就是我们 ...

  3. “全能”选手—Django 1.10文档中文版Part1

    本文是博主翻译的Django1.10版本官方文档的第一部分,如时间充裕,争取一直翻译下去,经验不足,或有错漏,敬请指正. 另外对于公开文档进行翻译的版权问题不是很清楚,如有侵权请联系我! 另外,要转载 ...

  4. Django 1

    Django 1.10文档中文版Part1 本文是博主翻译的Django1.10版本官方文档的第一部分,如时间充裕,争取一直翻译下去,经验不足,或有错漏,敬请指正.另外对于公开文档进行翻译的版权问题不 ...

  5. Django 1.10文档中文版Part1

    目录 第一章.Django1.10文档组成结构1.1 获取帮助1.2 文档的组织形式1.3 第一步1.4 模型层1.5 视图层1.6 模板层1.7 表单1.8 开发流程1.9 admin站点1.10 ...

  6. WinDbg 命令三部曲:(一)WinDbg 命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  7. Rsyslog配置文件详解

    Rsyslog配置文件详解https://my.oschina.net/0757/blog/198329 # Save boot messages also to boot.log 启动的相关信息lo ...

  8. rsyslog 详解3

    http://blog.clanzx.net/2013/12/31/rsyslog.html http://www.centosabc.com/archives/601 http://www.cnbl ...

  9. rsyslogd配置文件详解

    非常详细的rsyslogd配置文件解析 rsyslog服务和logrotate服务=========================================================== ...

随机推荐

  1. Storm中并行度原来是这样计算的(1.0.1版本)

    ==思考问题1== 向集群提交一个拓扑的时候,Storm是如何计算Task数以及Executor数的? 具体有多少个worker,多少个executor,每个executor负责多少个task? == ...

  2. Linux下软件常见安装方式

    pasting  分类: Linux2007-12-08 16:31 1909人阅读 评论(0) 收藏 举报 linuxredhat脚本文档managerfile        Linux下软件安装主 ...

  3. Perl 学习笔记-目标操作

    1.在目录树中移动. 程序运行时会以当前工作目录作为相对路径的起点, 可以使用  chdir 操作符改变当前目录: chdir "/etc" or die "Can't ...

  4. CodeForces 681D Gifts by the List (树上DFS)

    题意:一个家庭聚会,每个人都想送出礼物,送礼规则是, 一个人,先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系, 和每个人想给谁送! ...

  5. Druid详细配置信息

    druid的配置项如下 配置 缺省值 说明 name   配置这个属性的意义在于,如果存在多个数据源,监控的时候 可以通过名字来区分开来.如果没有配置,将会生成一个名字, 格式是:"Data ...

  6. C# 时间戳的生成

    /**        * 生成时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数         * @return 时间戳        */        publi ...

  7. 开源SLAM

    GitHub 上优秀的开源SLAM repo (更新中):https://www.jianshu.com/p/464ca0d0c254 当前的开源SLAM方案:https://www.cnblogs. ...

  8. Android小技巧

    一.android:clipChildren属性 效果图 看到这个图时你可以先想想如果是你,你怎么实现这个效果.马上想到用RelativeLayout?NO,NO,NO,,, 实现代码 <?xm ...

  9. Delphi XE8 iOS与Android移动应用开发(APP开发)教程[完整中文版]

    https://item.taobao.com/item.htm?id=536584650957&toSite=main

  10. Oracle定時email通知

    small_program_task 這張表的資料是待發送的email通知,再次之前已經有一個job會定時掃描固定時間內未接收到小程式回報狀態將其寫入到該表,send_flag為N,表示為寄過通知.e ...