2017-03-03 242 views
1

我在Azure中运行Node.js应用程序。现有的Azure Web应用程序日志记录功能将应用程序日志限制为最大大小,这意味着我无法从一天前检索日志(例如)。我可以从资源管理器中修改一些配置/日志设置。Azure诊断日志大小限制

比如我可以编辑以下属性:

... 
"httpLogs": { 
    "fileSystem": { 
    "retentionInMb": 35, 
    "retentionInDays": null, 
    "enabled": true 
    }, 
    "azureBlobStorage": { 
    "sasUrl": null, 
    "retentionInDays": null, 
    "enabled": false 
    } 
}, 
... 

我没有看到任何“retentionInDays”或“retentionInMb”属性“applicationLogs”。

"applicationLogs": { 
    "fileSystem": { 
    "level": "Off" 
    }, 

是否有可能增加应用程序日志的存储时间或大小限制?

回答

0

事实证明,Azure的限制Web服务器和应用记录到12小时,但这不适用于Node.js日志。总日志文件数设置为10的缺省限制。

可以更改以下配置以适应任何您想要的内容,尽管它被警告不要在生产中因性能命中:

loggingEnabled: true maxLogFileSizeInKB: 128 maxTotalLogFileSizeInKB: 1024 maxLogFiles: 20

0

我建议stdout和stderr重定向到一个文件,那么你就不会依赖于Microsoft为您捕捉并保存:

var access = fs.createWriteStream('./api.access.log'); process.stdout.write = process.stderr.write = access.write.bind(access);

+0

'createWriteStream'锁定在文件系统中的文件,因此应用程序运行时,我们不能访问该文件。我们必须先停止应用程序才能释放文件,这不是一个可接受的选项。 –