博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第5章 高效的多线程日志
阅读量:5973 次
发布时间:2019-06-19

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

高效的多线程日志

功能需求

功能主要包括:

  1. 日志消息的级别: TRACE, DEBUG, INFO, WARN, ERROR, FATAL

  2. 日志消息有多个目的地(appender),如文件,socket, SMTP等

对于分布式系统中的服务进程而言,日志的目的地(destination)只有一个:本地文件。

日志文件的滚动(rolling): 文件大小 & 时间

日志文件的文件名格式
日志文件的压缩与归档(archive)

日志消息的文件格式

1. 每条日志占用一行2. 时间戳精确到微妙3. 使用GMT时区4. 打印线程ID    5. 打印日志级别6. 打印源文件名和行号

常见问题: 一旦程序崩溃,那么最后若干条日志往往就是丢失了。

muduo解决:

1.定期将缓存区内的日志消息fflush到硬盘。      2.每条内存中的日志消息都带有cookie,其值为某个函数的地址,通过core dump文件中查找cookie     就能找到尚未来得及写入磁盘的消息。

性能需求

  1. 不阻塞正常的执行流程

  2. 在多线程程序中,不造成争用

多线程异步日志

muduo日志库采用双缓存技术

转载地址:http://dfdox.baihongyu.com/

你可能感兴趣的文章
采用Servlet Listener方式运行Liquibase
查看>>
TCP-IP 学习(三) TCP
查看>>
对比两个无序整形数组相似度问题算法
查看>>
批量有效地修改package名
查看>>
android或ios app请求参数格式
查看>>
Camera Vision - video surveillance on C#
查看>>
如何理解网络连接中的"3次握手"?
查看>>
使用Dubbo服务出现java.io.IOException: invalid constant type: 18异常解决办法
查看>>
一条命令完成砸壳
查看>>
PYKit目录
查看>>
JSON使用总结
查看>>
php-redis中文帮助手册_系统相关_config_eval_evalSha_script...
查看>>
Tomcat Context配置
查看>>
MyEclipse中properties文件中文插件
查看>>
CentOS6.5安装ntopng
查看>>
mysql事务rollback&commit
查看>>
Node.js搭建Web服务器
查看>>
Shell脚本学习
查看>>
JAX-RS入门 五: 自动类型转换
查看>>
连连看 欢迎玩耍 :)
查看>>