java – 停止日志系统清理关机
发布时间:2020-09-12 21:13:57 所属栏目:Java 来源:互联网
导读:我最近一直在尝试使用 logback,并直接从Eclipse内部运行示例.当我这样做时,我注意到 – 即使在我的静态主(String [] args)方法结束(从我的Java驱动程序类之内),应用程序继续运行. 我最终确定,Logback正在管理自己的线程,即使在我的主要应用程序退出之后,它仍
我最近一直在尝试使用 logback,并直接从Eclipse内部运行示例.当我这样做时,我注意到 – 即使在我的静态主(String [] args)方法结束(从我的Java驱动程序类之内),应用程序继续运行. 我最终确定,Logback正在管理自己的线程,即使在我的主要应用程序退出之后,它仍然保持活动.我搜索了一些解决方案,发现这是一种从Java内部明确关闭Logback的方法: ILoggerFactory factory = LoggerFactory.getILoggerFactory(); if(factory instanceof LoggerContext) { LoggerContext ctx = (LoggerContext)factory; ctx.stop(); } 这真的是干净地关闭对数的唯一方法吗?我从来没有遇到一个日志记录系统(JUL,JCL,log4j等),使您明确关闭它,以便正常退出应用程序… 提前致谢! 更新:这里是logback.xml: <configuration debug="true" scan="true" scanPeriod="5 minutes"> <appender name="logManager-consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>TRACE</level> <onMatch>ACCEPT</onMatch> <onMismatch>NEUTRAL</onMismatch> </filter> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="logManager-smtpAppender" class="ch.qos.logback.classic.net.SMTPAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>NEUTRAL</onMismatch> </filter> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <smtpHost>my.smtp.host</smtpHost> <to>john.smith@example.com</to> <from>no-reply@example.com</from> <username>my_user</username> <password>my_password</password> <subject>%logger{20} - %m</subject> <layout class="ch.qos.logback.classic.html.HTMLLayout"/> <cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker"> <bufferSize>5</bufferSize> </cyclicBufferTracker> </appender> <root level="ALL"> <appender-ref ref="logManager-consoleAppender" /> <appender-ref ref="logManager-smtpAppender" /> </root> </configuration> 使用logback-1.0.13和JDK 1.6u34. 解决方法这个问题可能是由于logback的错误.在SMTPAppender中将 asynchronousSending设置为true可以避免错误(不实际修复它).我已经添加了 a new issue in our jira描述的问题.(编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 为什么Guava不提供一种转换地图键的方法
- Java创建数组的几种方式总结
- Java实现文件压缩与解压的示例[zip格式,gzip格式]
- 详解Java正则表达式中Pattern类和Matcher类
- java – SFTP上传使用Apache Commons VFS下载Exist and Mov
- 如何使用JPA / Hibernate注释将MySQL char(n)列映射到实例变
- java – 如何找出对象是整数还是isa字符串或isa布尔值?
- java – JTable.clearSelection()vs Jtable.getSelectionMo
- Java用自定义的类作为HashMap的key值实例
- java定义二维数组的几种写法(小结)