从 Windows Server EC2 上运行的应用程序发送日志 Cloudwatch - 登录多个文件/文件夹

问题描述 投票:0回答:2

我们有一个在

Windows Server EC2
实例上运行的应用程序(现成的,具有基于时间和基于功能的许可证密钥)。此应用程序创建的日志存储在以下目录中:
C:\ProgramData\MyApp\v4\Logs
。在这个文件夹里,有很多文件名都是
{guid}.txt

我们想把这些喂给

Cloudwatch
。我们创建了
config.json
,但我想问:

file_path
必须
中的config.json是否指向一个且仅一个文件?可以指向文件夹吗?

{
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "C:\\ProgramData\\MyApp\\v4\\Logs\\logs.txt",
            "log_group_name": "Logs-Myapp",
            "log_stream_name": "{instance_id}-Myapp",
            "retention_in_days": 180
          }
        ]
      }
    }
  }
}

我尝试指向一个文件夹,但没有得到任何结果。

amazon-cloudwatch
2个回答
1
投票

collect_list中的file_path只能指向文件。但是,它确实允许在文件名中使用通配符来选择一系列文件。因此,如果您的文件始终命名为 {guid}.txt,您可以使用以下模式。

{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "C:\\ProgramData\\MyApp\\v4\\Logs\\*.txt", "log_group_name": "Logs-Myapp", "log_stream_name": "{instance_id}-Myapp", "retention_in_days": 180 } ] } } }
}

云监视代理日志记录部分的

官方 AWS 文档页面还描述了您可以在文件路径中使用超级星号 (**)。从理论上讲,这可能意味着您也可以尝试以下模式:

"file_path": "C:\\ProgramData\\MyApp\\v4\\Logs\\**"
但是,我从未尝试过,而且这种模式可能有点过于宽松。


0
投票
我过去有过确切的用例,我可以使用以下配置解决这个用例

{ "file_path": "C:\\Program Files\\yourFile\\logs\\*", "log_group_class": "STANDARD", "log_group_name": "YourLGName", "log_stream_name": "StreamName", "retention_in_days": 5 }
希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.