2017-03-03 148 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'鎖定在文件系統中的文件,因此應用程序運行時,我們不能訪問該文件。我們必須先停止應用程序才能釋放文件,這不是一個可接受的選項。 –