logback之二:输出日志到控制台
来源:互联网 发布:历史周期律 知乎 编辑:程序博客网 时间:2024/06/05 06:28
和logack之一:输出日志到控制台类似,改动的地方:
1. logback[-test].xml文件:
调用测试类的方法,生成granularity.log文件。
附:
①. prudent:小心的,慎重的。如果设置为true,不同JVM的file appenders能够安全地将日志输出到同一个文件中。
这是通过锁定文件通道实现的:
②. 当prudent为true时,如果append设置为false,会被强行转成true。
这是在start方法中处理的:
1. logback[-test].xml文件:
- <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
- <file>/logs/granularity.log</file>
- <encoder><!-- 必须指定,否则不会往文件输出内容 -->
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
- </encoder>
- <append>true</append>
- <prudent>false</prudent>
- </appender>
- <root level="DEBUG">
- <appender-ref ref="fileAppender" />
- </root>
调用测试类的方法,生成granularity.log文件。
附:
①. prudent:小心的,慎重的。如果设置为true,不同JVM的file appenders能够安全地将日志输出到同一个文件中。
这是通过锁定文件通道实现的:
- protected void writeOut(E event) throws IOException {
- if (prudent) {
- safeWrite(event);
- } else {
- super.writeOut(event);
- }
- }
- private void safeWrite(E event) throws IOException {
- ResilientFileOutputStream resilientFOS = (ResilientFileOutputStream) getOutputStream();
- FileChannel fileChannel = resilientFOS.getChannel();
- if (fileChannel == null) {
- return;
- }
- FileLock fileLock = null;
- try {
- fileLock = fileChannel.lock(); // 加锁
- long position = fileChannel.position();
- long size = fileChannel.size();
- if (size != position) {
- fileChannel.position(size);
- }
- super.writeOut(event);
- } finally {
- if (fileLock != null) {
- fileLock.release(); // 释放锁
- }
- }
- }
②. 当prudent为true时,如果append设置为false,会被强行转成true。
这是在start方法中处理的:
- if (prudent) {
- if (!isAppend()) {
- setAppend(true);
- addWarn("Setting \"Append\" property to true on account of \"Prudent\" mode");
- }
- }
转载地址:http://czj4451.iteye.com/blog/1975220
阅读全文
0 0
- logback之二:输出日志到控制台
- logback系列之一:输出日志到控制台
- slf4j+logback将日志输出到控制台
- slf4j+logback将日志输出到控制台
- logback之一:输出日志到控制台
- logback系列之二:输出日志到文件
- 使用slf4j和logback输出日志到控制台
- logback系列之四:输出日志到不同文件
- logback系列之三:输出日志到文件(滚动)
- logback系列之四:输出日志到不同文件
- logback之三:输出日志到文件(滚动)
- logback之四:输出日志到不同文件
- logback输出到控制台和文件--配置
- Logback输出日志到控制台的配置方法和源码分析
- 日志框架Nlog之将日志输出到控制台
- logback之sql单纯输出到一个日志,所有日志输入到一个日志
- RAILS输出日志到控制台
- log4j日志输出到控制台
- 【Android】【UI】透明度转十六进制
- OnTouchListenner
- CSS常见兼容性问题总结
- python3中,用Tkinter编写记事本功能
- mysql错误指令:Failed to open file "file_name" error 2/error 22
- logback之二:输出日志到控制台
- spring在web容器启动时执行初始化方法(四种方式)
- 使用Intellij Idea编写Spark应用程序(Scala+SBT)
- ES6 import引用Tips
- django自定义模板引用问题
- AndroidStudio3.0 Android Profiler分析器(cpu memory network 分析器)
- Android 帧动画(Frame Animation)
- Python内置函数property()使用实例
- Bootstrap 表格不对齐