首页
学习
活动
专区
工具
TVP
发布

c++ 日志 线程安全+缓存

根据上一次的测试,有缓存的日志性能会更好。用到了time.h函数,所以在linux下就要改动一下了,windows环境下写的。...思路采用(参照muduo库的日志,不过认为他线程不安全,和没用缓存,就改造了下) 1.有一个总的缓存,logboss,为一个恶汉模式的单例,指针对象为智能指针,析构函数讲缓存写入文件。...,有一个logstream对象,支持各种基本类型的<<输入,然后将输入转化为字符串放入到这个对象里面缓存数组里。...4.使用一个SourceFile,只是用来方便的获取文件名。 5.使用一个FixedBuffer,方便对字符串数组的操作,append(),fflush()之类。...--- Logger::Logger( SourceFile file, int line, LogLevel level, const char* func ) {      //日志格式

1.2K21
您找到你想要的搜索结果了吗?
是的
没有找到

linux日志循环

linux存在很好的日志机制,大到系统,小到应用都可以记录日志。 为什么需要日志循环 操作系统(Windows,Unix),应用一般都会记录日志,方便使用者常看系统或应用使用情况,或者排查故障。...单纯的记录日志不加干预,日志不断累积,时间长了,磁盘空间就被占满了。 所以,在linux中,日志一般会按一定的规则进行循环,保证日志量控制在一定的范围内。...日志循环的方法 日志循环的原理一般是:在特定的时间点,或日志达到一定大小,就触发循环脚本。 循环脚本通过新增新日志,备份老日志,调度应用重新加载配置(重新写日志)达到日志循环的目的。...}` 该方法通过mv+kill的方式进行日志循环,因为linux中,日志打开底层原理是通过inode信息寻址找到对应的block进行内容读取,mv操作不改变文件的inode值。...2. logrotate循环 logrotate是一个日志循环的工具,linux内置的syslog也是使用它进行日志循环。

4.1K50

C++日期

日期 构造函数与获取天数 加天数 减天数 日期的比较 日期减日期 打印和输入日期 日期完整代码 构造函数与获取天数 这里我们不算公元前的日期。...Date s(2022, 10, 13); cout << s; cin和cout都是在头文件istream中定义的对象,cin是istream,cout是osteram的。...那么进行>重载的时候不会放入成员函数,因为在进行重载的时候,隐藏的this指针必定储存日期的结构体,就会变成这个样子。..._day << "日" << endl; return out; } 在日期进行了这个函数的友元,所以可以访问私有成员了。...日期完整代码 我将部分成员函数的声明和定义分离,因为太长读起来不是很方便,并且还有一些新的成员函数。 因为里面的成员函数默认是内联,所以就不用添加内联属性了。

85300

linux日志管理

为了让 管理者可以随时监控服务所产生的信息,Linux 提供了一个日志服务,该服务可以收集(Collect)任何服务传递过来的信息,储存成为记录文件(Log File) 、或直接传送给某些用户,甚至也可以传送到其他计算机的系统日志服务...日志的作用 ​系统方面的问题 ​linux系统长时间运行,可能会出现一些软件,硬件方面的问题,这些问题都会记录到日志文件中,我们可以通过查看相应的日志文件,找出问题所在 网络服务的问题 ​网络服务在运行过程中产生的信息都会记录到日志文件中...所以linux系统提供了一个日志切割工具,这个工具就是logrotate,用户可以用过这个工具对日志文件进行切割,系统也利用这个工具配合计划任务服务,定期的对系统日志进行切割。...现在linux系统采用systemd来管理系统服务,而systemd又是第一个启动的服务,所以现在我们通过一个systemd自带的,名字叫systemd-journald的服务来协助记录日志信息。...虽然我们有相关的工具来查看日志信息,但是如果信息量过大的话查看起来也是比较费时的,所以linux系统给我们提供了一个日志分析工具,这个工具叫logwatch,它会每天分析日志信息,并将信息通过邮件的形式发送给

1.4K20

Linux 日志管理

# Linux 日志管理 # 基本介绍 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。...原理示意图 查询Linux中的rsysloged服务是否启动 ps aux | grep "rsyslog" / grep -v "grep" 查询rsyslogd服务的自启动状态 systemctl...sshd服务相关事件),该文件会接收到信息并保存.给小伙伴演示重启,登录的情况,看看是否有日志保存 # 日志轮替 # 基本介绍 日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后...这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件即可。 如果配置文件中没有“dateext”参数,日志文件就需要进行改名了。...missingok 如果日志不存在,则忽略该日志的警告信息 notifempty 如果日志为空文件,则不进行日志轮替 minsize 大小 日志轮替的最小值。

5.3K30

Linux日志轮替

基本介绍日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除2....这样日志文件名不会重叠,也就不需要日志文件的改名, 只需要指定保存日志个数,删除多余的日志文件即可。3) 如果配置文件中没有“dateext”参数,日志文件就需要进行改名了。...当第一次进行日志轮替时,当前的“secure”日志会自动改名为“secure.1”,然后新建“secure”日志, 用来保存新的日志。...missingok 如果日志不存在,则忽略该日志的警告信息notifempty 如果日志为空文件,则不进行日志轮替minsize 大小 日志轮替的最小值。...日志轮替机制原理日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务。

8800

Linux日志管理

Linux 常见的登录日志文件 登录文件可以帮助我们了解很多系统重要的事件,包括登入者的部分信息,因此登录文件的权限通常是设定为仅有 root 能够读取而已。...另一种则是由 Linux distribution 提供的登 录档管理服务来统一管理。 你只要将讯息丢给这个服务后,他就会自己分门别的将各种讯息放置 到相关的登录档去!...CentOS 7.x 使用 systemd 提供的 journalctl 日志管理 CentOS 7 除了保有既有的 rsyslog.service 之外,其实最上游还使用了 systemd 自己的登录文件日志管理功能喔...18.2 rsyslog.service:记录登录文件的服务 上一小节提到说 Linux 的登录档主要是由 rsyslog.service 在负责,那么你的 Linux 是否有启动 rsyslog 呢?...为了让不同的信息放置到不同的文件当中,好让我们分门别的进行登录档的管理,所以啰,将各种类别的服务之登录文件,记录在不同的文件里面,就是我们 /etc/rsyslog.conf 所要作的规范了!

8.9K20
领券