heroku - 如何查看全部日誌

我在heroku上有一個小應用程序。 每當我想看日誌時,我都會去命令行作 web

heroku logs

這隻能讓我看到大約100行。 有沒有辦法在heroku上查看咱們的應用程序的完整日誌? bash


#1樓

對於雪松堆棧,請參閱: app

https://devcenter.heroku.com/articles/oneoff-admin-ps 工具

你須要運行: post

heroku運行bash ... spa


#2樓

Heroku將日誌視爲按時間排序的事件流。 出於各類緣由,不建議在此類環境中訪問文件系統上的*.log文件。 命令行

首先,若是您的應用有多個dyno,則每一個日誌文件僅表明您應用事件的部分視圖。 您必須手動聚合全部文件才能得到完整視圖。 日誌

其次,Heroku上的文件系統是短暫的意思,不管什麼時候重啓或移動dyno(大約天天一次 )日誌文件都會丟失。 所以,您最多隻能得到一天的單個dyno日誌。 code

最後,在運行heroku console甚至heroku run bashCedar堆棧上, heroku run bash不會將您鏈接到當前正在運行的dyno。 它專門爲bash命令生成一個新的。 這稱爲一次性過程 。 所以,您將找不到運行實際http進程的其餘dynos的日誌文件,這些進程是爲heroku runrouter

通常來講, 記錄和可見性是Heroku的一流公民,有幾種工具能夠解決這些問題。 首先,要查看全部dynos和應用程序/堆棧的全部層的應用程序事件的實時流,請使用heroku logs -t命令將輸出拖尾到您的終端。

$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...

這對於當即觀察應用程序的行爲很是有用。 若是要將日誌存儲更長時間,可使用提供日誌保留,警報和觸發器的衆多日誌記錄加載項之一。

最後,若是您想本身存儲日誌文件,能夠設置本身的系統日誌,以接收來自Heroku的事件流並自行進行後處理/分析。

簡介:不要使用heroku consoleheroku run bash來查看靜態日誌文件。 使用heroku logs或日誌記錄加載項將Heroku的日誌事件流輸入到您的應用程序中。


#3樓

heroku logs -t向咱們顯示實時日誌。


#4樓

可能值得將免費的Papertrail計劃添加到您的應用程序中。 零配置,您能夠得到7天的日誌數據,最高可達10MB /天,並能夠搜索2天的日誌。


#5樓

另請參閱各個流/過濾器。

例如,僅尾隨您的應用程序日誌

heroku logs --source app -t

或者只查看路由器日誌

heroku logs --ps router

或者把它們連在一塊兒

heroku logs --source app --ps worker

超好的..

相關文章
相關標籤/搜索