logrotation过程stdout和stderr窗口

我有一个Windows服务正在运行的另一个进程,打印到STDERR和STDOUT许多行。 我正在捕获这些行,并将其redirect到一些日志文件。 我想login这个日志文件,如果它的大小变得太大,不能创build另一个文件,并保存前一个。 而不是自己实现它,我想使用一些像spdlog的第三方logrotate库。

问题是,我不能明显地使进程使用logging器API和如果

我把一个非常基本的Powershell脚本放在一起,引导你正确的方向。

Function logrotate ( $activefile = "C:\activelog.text", $dest = "C:\",$activefile_size, $newfilename = "arotatedlog.text") { $activefile_size = get-item $activefile| Select-Object Name, CreationTime, @{Name="Kbytes";Expression={$_.Length / 1Kb}} if ($activefile_size.Kbytes -gt 150) {Write-Host "File size equal or greater than 150KB" $dest = "$dest + $newfilename" Get-Content $activefile | Set-Content -Path $dest } logrotate 
  1. 获取活动日志文件
  2. 将活动日志文件的大小隐藏到千字节
  3. 检查活动日志文件是否为150kb
  4. 如果文件为150kb,则抓取文件的内容并将其设置为新文件。
  5. 如果文件不是150kb结束脚本。

要注意的事情

重复的文件存在exception是你应该注意的主要事情。 根据文件阈值,您可能需要将增量编号添加到NEW文件名。

希望这可以帮助。