博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
logback系列之二:输出日志到文件
阅读量:5906 次
发布时间:2019-06-19

本文共 1488 字,大约阅读时间需要 4 分钟。

hot3.png

1. logback[-test].xml文件: 

Java代码  

  1.       
    /logs/granularity.log
          
              
    %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
          
          
    true
          
    false
          
          
      

调用测试类的方法,生成granularity.log文件。 
附: 
①. prudent:小心的,慎重的。如果设置为true,不同JVM的file appenders能够安全地将日志输出到同一个文件中。 
    这是通过锁定文件通道实现的: 

Java代码  

  1. 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方法中处理的: 

Java代码  

  if (prudent) {    if (!isAppend()) {      setAppend(true);      addWarn("Setting \"Append\" property to true on account of \"Prudent\" mode");    }  }

转载于:https://my.oschina.net/u/2334022/blog/408671

你可能感兴趣的文章
Python GUI库wxPython官网Hello World示例的逐行解释
查看>>
RE·WORK 巅峰对话:深度学习将彻底改变医疗健康领域
查看>>
Codeforces Round #442 (Div. 2) A B
查看>>
极值问题(acms)
查看>>
swift UI专项训练8 展示数据
查看>>
一起学shell(十一)之安全的shell脚本:起点
查看>>
Microsoft® Deployment Toolkit 2010之快速部署Windows 7
查看>>
LNMP的技术讲解
查看>>
SVN Hooks的介绍及使用
查看>>
Oracle 字符集的查看和修改【上】
查看>>
tomcat注册windows服务
查看>>
使用qq邮箱的smpt服务发送邮件一定要记得用ssl
查看>>
20个非常有用的Java代码片段
查看>>
网站优化和竞价有什么区别
查看>>
MySQL开源热备工具XtraBackup的原理与程序说明
查看>>
mongoDB(1):windows下安装mongoDB(解压缩版)
查看>>
Ubuntu解决RTNETLINK answers: File exists
查看>>
ES6数组去重的最佳实践:Set结合Array.from() | 拓展运算符结合 Set
查看>>
深入屏幕像素概念
查看>>
awk命令的几个选项注释
查看>>