.net 从自动缩放的beanstalk实例中删除早于n天的log4net日志

.net 从自动缩放的beanstalk实例中删除早于n天的log4net日志,.net,amazon-elastic-beanstalk,log4net,amazon-elb,log4net-configuration,.net,Amazon Elastic Beanstalk,Log4net,Amazon Elb,Log4net Configuration,在我们的AWS环境中,Log4net用于在弹性负载平衡器后面记录来自自动缩放Beanstalk IIS env的异常。还使用了工作实例和CodeDeploy服务 Worker实例和Beanstalk实例都使用log4net将日志写入udp流以及日志文件。可以按日期和尺寸滚动。在log4net中,无法旋转/删除超过n天的日志。这一问题已悬而未决多年: 由于自动缩放,使用批处理文件删除超过n天的日志文件对我来说是不可能的。要从主机中删除较旧的日志,我必须使用什么选项 更新#1 这个怎么样 comma

在我们的AWS环境中,Log4net用于在弹性负载平衡器后面记录来自自动缩放Beanstalk IIS env的异常。还使用了工作实例和CodeDeploy服务

Worker实例和Beanstalk实例都使用log4net将日志写入udp流以及日志文件。可以按日期和尺寸滚动。在log4net中,无法旋转/删除超过n天的日志。这一问题已悬而未决多年:

由于自动缩放,使用批处理文件删除超过n天的日志文件对我来说是不可能的。要从主机中删除较旧的日志,我必须使用什么选项

更新#1

这个怎么样

commands:
  0_mkdir:
    command: mkdir C:\\scripts\\

  1_create_script:
    file: C:\\scripts\\delAppLogs.bat
    content: |
      forfiles /p "C:\AppLogs" /s /m *.* /D -30 /C "cmd /c del @path"

  2_runSched_delAppLogs:
    command: SchTasks /Create /SC DAILY /TN "Delete Logs" /TR "c:\scripts\delAppLogs.bat" /ST 23:55 /RU SYSTEM
更新#2
在SchTasks上使用switch/RU以非交互方式运行脚本

您需要使用ebextensions自定义服务器并创建一个清理旧日志的计划任务

在web应用程序根目录中名为
.ebextensions
的文件夹中创建yaml
init.config
文件。还可以添加一个bat/ps文件,以便在应用程序中执行删除操作(或从s3下载),该应用程序将yaml的内容设置为:

commands:
  00-log-cleanup:
    command: SchTasks /Create /SC DAILY /TN "Delete Logs" /TR "c:\myapp\deletelogs.bat" /ST 23:55
阅读更多关于ebextensions的信息。
阅读计划任务实用程序。

检查更新#1。有什么建议吗?嗨-那应该很好!你试过了吗?顺便说一句,您发现我在yaml示例中使用了错误的标题,我将更新该标题。不过有一件事-我会将作业计划更改为更快地运行,这样您就可以验证其工作情况。我正在使用forfiles命令在普通实例上测试计划的任务。然后将转移到EB。谢谢你的帮助。@a测试进行得怎么样了?forfiles非常好,我还添加了一些Send-MailMessage,将文件列表作为警报发送。这是通过手动创建Sched任务来测试的。对于.ebextensions,该脚本需要由开发人员合并,然后在下一版本中部署。您知道这是如何工作的。:)我会随时通知你的。