我们有一个在
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
}
]
}
}
}
}
我尝试指向一个文件夹,但没有得到任何结果。
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\\**"
但是,我从未尝试过,而且这种模式可能有点过于宽松。
{
"file_path": "C:\\Program Files\\yourFile\\logs\\*",
"log_group_class": "STANDARD",
"log_group_name": "YourLGName",
"log_stream_name": "StreamName",
"retention_in_days": 5
}
希望这有帮助