文档章节

logback系列之二:输出日志到文件

小代码2016
 小代码2016
发布于 2016/03/25 11:36
字数 270
阅读 62
收藏 0
点赞 1
评论 0
logback系列之一:输出日志到控制台 类似,改动的地方: 

1. logback[-test].xml文件:  
Java代码   收藏代码
  1. <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">  
  2.     <file>/logs/granularity.log</file>  
  3.     <encoder><!-- 必须指定,否则不会往文件输出内容 -->  
  4.         <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>  
  5.     </encoder>  
  6.     <append>true</append>  
  7.     <prudent>false</prudent>  
  8. </appender>  
  9.   
  10. <root level="DEBUG">  
  11.     <appender-ref ref="fileAppender" />  
  12. </root>  


调用测试类的方法,生成granularity.log文件。 

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

Java代码   收藏代码
  1. protected void writeOut(E event) throws IOException {  
  2.   if (prudent) {  
  3.     safeWrite(event);  
  4.   } else {  
  5.     super.writeOut(event);  
  6.   }  
  7. }  
  8.   
  9. private void safeWrite(E event) throws IOException {  
  10.   ResilientFileOutputStream resilientFOS = (ResilientFileOutputStream) getOutputStream();  
  11.   FileChannel fileChannel = resilientFOS.getChannel();  
  12.   if (fileChannel == null) {  
  13.     return;  
  14.   }  
  15.   FileLock fileLock = null;  
  16.   try {  
  17.     fileLock = fileChannel.lock(); // 加锁  
  18.     long position = fileChannel.position();  
  19.     long size = fileChannel.size();  
  20.     if (size != position) {  
  21.       fileChannel.position(size);  
  22.     }  
  23.     super.writeOut(event);  
  24.   } finally {  
  25.     if (fileLock != null) {  
  26.       fileLock.release(); // 释放锁  
  27.     }  
  28.   }  
  29. }  


②. 当prudent为true时,如果append设置为false,会被强行转成true。 
    这是在start方法中处理的: 

Java代码   收藏代码
  1. if (prudent) {  
  2.   if (!isAppend()) {  
  3.     setAppend(true);  
  4.     addWarn("Setting \"Append\" property to true on account of \"Prudent\" mode");  
  5.   }  
  6. }  

本文转载自:http://czj4451.iteye.com/blog/1975220

共有 人打赏支持
小代码2016
粉丝 35
博文 328
码字总数 153495
作品 0
安阳
程序员

暂无文章

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
11分钟前
0
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
32分钟前
0
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
46分钟前
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
59分钟前
0
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
0
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
0
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部