logback日志丢失的情况之一
在游戏服务器上线之后,会记录很多统计日志,这些日志是第三方需要的数据,通过linux 的 rsync方式同步给第三方。日志规则 每十分钟会创建一个日志文件。然后后台有一个rsync进程,每隔十分钟向第三方服务器同步一次日志文件。测试的时候没有问题,但是上线之后,发现在整点的时候,比如3:30,3:50的时候,日志文件只有前几秒的数据。经过分析,在这个时候发生了rsync同步的操作,同步操作之后,日志就再也写不进去了。
解决方法是,把产生日志的时间和同步的时间错开,比如九分钟产生一个日志文件,十分钟同步一次。而且把当前写入的日志文件不要同步,只同步已经不再写的日志文件。logback的配置如下:
<appender name="Stat_log"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.home}/logs/stat/stat.log</file> <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${log.home}/logs/stat/stat_%d{yyyyMMddHHmm}.json
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="MyTimeBasedFileNamingAndTriggeringPolicy">
<multiple>10</multiple>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>72000</maxHistory>
</rollingPolicy> <encoder>
<pattern> %msg%n
</pattern>
</encoder>
</appender>
配置中MyTimeBasedFileNamingAndTriggeringPolicy是自定义 的一个策略类,详细见:https://www.cnblogs.com/wgslucky/p/10071791.html
这样配置,当前写入的日志文件是stat.log,而不再写入的文件是stat_时间.json的文件。同步的时候只同步.json的文件即可。

logback日志丢失的情况之一的更多相关文章
- SpringBoot系列——Logback日志,输出到文件以及实时输出到web页面
前言 SpringBoot对所有内部日志使用通用日志记录,但保留底层日志实现.为Java Util Logging.Log4J2和Logback提供了默认配置.在不同的情况下,日志记录器都预先配置为使 ...
- ASP.NET Session丢失的情况
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. 现在我就把原 ...
- 在SpringBoot中添加Logback日志处理
前言 SpringBoot项目中在官方文档中说明,默认已经依赖了一些日志框架.而其中推荐使用的就是Logback,所以这一次我将在我的模版中加入Logback日志的配置,说明一下,SpringBoot ...
- 【SpringBoot】Logback日志框架介绍和SpringBoot整合实战
========================11.Logback日志框架介绍和SpringBoot整合实战 2节课================================ 1.新日志框架L ...
- logback日志异步打印
最近碰到一个问题:客户的服务器程序偶尔出现请求响应过慢的情况,通过查看日志发现RSA验证签名的代码执行超过20秒,而正常情况下只需要16毫秒. RSA证书是服务器启动就加载好的,不存在读文件慢的问题. ...
- springboot+logback日志输出企业实践(下)
目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...
- 【使用篇二】SpringBoot的日志体系及如何开启logback日志(15)
抄自:https://blog.csdn.net/liujun03/article/details/82684209 Java应用中,日志一般分为以下5个级别(从高到低): ERROR 错误信息 WA ...
- OpenSIPS 2.4.2 高并发下,日志丢失怎么办
问题年年有,今年特别多.最近公司对呼叫中心平台做了大幅度重构,基于OpenSIPS实现的会话管理服务,在高并发压测过程中,发现OpenSIPS的日志居然出现丢失的情况,简直让我食不知味,困惑不已. ...
- SpringBoot整合Logback日志框架配置全解析
目录 本篇要点 一.Logback日志框架介绍 二.SpringBoot与Logback 1.默认日志格式 2.控制台输出 3.文件输出 4.日志级别 5.日志组 6.自定义log配置 三.logba ...
随机推荐
- selenium之使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
https://www.cnblogs.com/JHblogs/p/7699951.html
- 实验四 (1):定义一个形状类(Shape)方法:计算周长,计算面积
(1)定义一个形状类(Shape)方法:计算周长,计算面积子类:矩形类(Rectangle) :额外的方法:differ() 计算长宽差圆形类(Circle)三角形类(Triangle)正方形类(Sq ...
- Angularjs判断页面是否已经渲染结束(动态给标签长度)
相信大家都会碰到这样的问题.页面循环li.但是因为个数不知道.没有办法给li设置固定宽度.那么这时就需要动态计算数据长度并动态改变li的宽度 <!--周边信息--> <div cla ...
- Java课后作业之石家庄地铁系统PSP表格20190403
PSP2.1 Personal Software Process Stages Time Planning 计划 36 hours · Estimate · 估计这个任务需要多少时间 36 hours ...
- 9、vuex快速上手
vue脚手架 npm install -g vue-cli usage: vue init example: vue init webpack myvue 安装vuex: npm i -S vuex ...
- Magic Pen 6
Problem Description In HIT, many people have a magic pen. Lilu0355 has a magic pen, darkgt has a mag ...
- 19.3.19 使用Flask框架搭建一个简易登录服务器
import Flask import json from Flask import request server1 = flask.Flask(__name__) #实例化一个flask对象 @se ...
- PageAdmin Cms V2.0 getshell 0day
黑小子在土司公布了“PageAdmin cms getshell Oday”,并给出了一个漏 洞的利用EXP.经过危险漫步在虚拟机里测试,存在漏洞的是PageAdmin Cms的次最薪版本PageAd ...
- tomcat之过滤器
过滤器是一种特殊的servlet,也需要在配置文件中进行配置,通过它可以将指定的请求拦截下来,之后对请求处理,处理完之后,将拦截请求放行.实现过滤器也需要实现一个接口叫javax. servlet.F ...
- 12生成器,send,推导式
# 1.生成器的本质就是迭代器 # 2.通过函数变成一个生成器 # def func(): # print(1) # yield 5 # 我的函数走到这了 # print(2) # yield 9 # ...