armok. 发表于 2023-5-24 14:29:09

LogRotateWin:Windows平台的logrotate实用程序的实现-开源

(VIP++福利贴:本资源由坛友 Arm2048   提出申请,由阿莫网上搜集与上传,版权归原作者。)

这是在Linux平台中找到的logrotate实用程序的Windows实现。 目标是使用与Linux版本相同的命令行参数和文件。 如果您要给予负面评价,请多花一些时间并解释原因。 我想尽可能地改善程序,但是我需要反馈。 谢谢! 源代码可在GitHub上获得:https://github.com/plecos/logrotatewin现在可在Chef Supermarket上获得:https://supermarket.chef.io/cookbooks/windows_logrotate

armok. 发表于 2023-5-24 14:29:19

Arm2048 发表于 2023-5-24 14:32:38

请问有没有windows系统上,针对应用程序的日志管理的工具软件,类似linux下的logrotate的功能。

起源是mosquittos的日志文件会积累很大,分析问题也不方便; 就想用个工具,自动把mosquitto生成的日志每天/每周存储成一个日志文件,自动删除半年前的日志文件;
请教windows上有没有类似功能的,简单易用的软件?? 多谢!

Arm2048 发表于 2023-5-24 15:03:03

电工师傅都有机会用到吧, 你做了个产品,要长时间自动化测试,生成日志log文件,如果文件日积月累很大,打开很慢吃内存,分析起来也费劲。 这是如果有个工具,能自动分割log文件大小,定期清除,是不是很好?

windows下好像没找到,github上有个2016年的mrotate,https://github.com/partizand/mrotate
我编写了ini配置文件:
Source=d:\123\mosquitto\*.log
Period=Weekly
TargetDir=d:\123\mosquitto\log
TargetMask=%y%m%d
KeepPeriod=180

运行后提示:
mrotate /r
mrotate v.0.2
Loading standart config file.
Skip entry KeepPeriod. Source missing
Skip entry Period. Source missing
Skip entry Source. Source missing
Skip entry TargetDir. Source missing
Skip entry TargetMask. Source missing
Start rotation
===================
不明原因......

Arm2048 发表于 2023-5-24 16:40:36

初步测试winlogrotate可用:

logrotate.conf文件内容:
#This is a test
D:\123\mosquitto\my.log {
      missingok
      rotate 30
        weekly
        #copytruncate
        create
        dateext
}

测试结果:
1、默认转移的log文件会压缩;会生成一个my.log-20230524.gz;
2、copytruncate原意是先拷贝log文件压缩转移,然后清空原log文件,实测没清空原my.log;
3、create可以,先把原log文件压缩转移,然后生成一个空白my.log;
4、logrotatelogrotate.conf只能运行一次,立即产生了my.log-20230524.gz; 但你再次运行logrotatelogrotate.conf 就不会再压缩转移my.log文件了;
5、管理员权限运行,否则会提示另一个进程(当然是mosquitto)正在使用my.log文件,不能操作;

还没琢磨如何让logrotate.exe 定期后台运行; 执行一次logrotate.exe,不会常驻后台服务进程;
还没长时间详细测试,只是试用了一下,这个软件基本可用。

Arm2048 发表于 2023-5-24 16:46:16

D:\123\mosquitto\my.log { #要rotate的log文件路径
      missingok#没有日志时跳过,经测试不支持notifempty选项
      rotate 30   #转运/保持30个日志文件;
      weekly      # 每周转储一次; 30*7=210天的样子
      #copytruncate
      create       #转储旧日志后,创建一个新日志文件
      dateext    #用当前日期命名
}
页: [1]
查看完整版本: LogRotateWin:Windows平台的logrotate实用程序的实现-开源