从自动缩放的 beantalk 实例中删除早于 n 天的 log4net 日志
Deleting log4net logs older than n days from Auto scaled beanstalk Instances
在我们的 AWS 环境中,Log4net 用于记录来自弹性负载均衡器后面的 Auto scaled Beanstalk IIS env 的异常。还使用了 worker 实例和 CodeDeploy 服务。
Worker 实例和Beanstalk 实例都使用log4net 将日志写入udp 流以及日志文件。可以按日期和大小滚动。 rotating/deleting 超过 n 天的日志在 log4net 中是不可能的。这待定多年:https://issues.apache.org/jira/browse/LOG4NET-367
由于自动缩放,我无法使用批处理文件删除超过 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 上对 运行 脚本非交互地使用开关 /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
在我们的 AWS 环境中,Log4net 用于记录来自弹性负载均衡器后面的 Auto scaled Beanstalk IIS env 的异常。还使用了 worker 实例和 CodeDeploy 服务。
Worker 实例和Beanstalk 实例都使用log4net 将日志写入udp 流以及日志文件。可以按日期和大小滚动。 rotating/deleting 超过 n 天的日志在 log4net 中是不可能的。这待定多年:https://issues.apache.org/jira/browse/LOG4NET-367
由于自动缩放,我无法使用批处理文件删除超过 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 上对 运行 脚本非交互地使用开关 /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