場景描述:linux
應用程序運行在 Docker環境中,
常用的查看後臺日誌的命令是:docker attach 容器名
該命令優勢:實時輸出;
不足之處:日誌大量輸出的時候,屏幕一閃而過,不便於調試,
而且有一個比較嚴重的問題,就是該命令在某些容器環境下,因爲配置不一樣,ctrl+c命令退出的時候,會直接致使該容器中止。docker
其實,docker自身是集成封裝了一些關於查看日誌的命令的,組合使用,可幫助平常快速定位問題:spa
* 顯示全部 log * 顯示實時 log * 使用 tail 查看 log 尾部 * 使用 grep 過濾 log * 根據時間查看 log * 組合使用 * 把錯誤日誌追加寫入文件
1. 顯示全部 log調試
# 顯示某個容器的全部log $ docker logs [OPTIONS] <CONTAINER> # 顯示 docker-compose 啓動的全部容器的log $ docker-compose logs
2. 顯示實時 log日誌
類比linux下的命令tail -f ****.logcode
$ docker logs -f <CONTAINER>
3. 查看倒數最近的多少條日誌記錄blog
$ docker logs --tail 20 <CONTAINER>
4. grep 過濾 logclass
$ docker logs | grep error
5. 根據時間查看 log容器
如只想查看某個時間點以後的日誌,使用 --since
選項,顯示從指定時間點到最新的日誌:後臺
$ docker logs --since 2019-04-20T15:05:34.483942Z <CONTAINER>
--since
指定了開始時間點,還能夠指定結束時間點,使用選項 --until
,顯示兩者之間的日誌:
$ docker logs --since 2019-04-20T15:05:34.483942Z --until 2019-04-23T15:05:34.483942Z <CONTAINER>
6. 組合使用
$ docker logs --tail 10 <CONTAINER> | grep info $ docker logs -f --since xxx --tail=10 <CONTAINER>
7. 把錯誤日誌追加寫入某個文件
$ docker logs -t <CONTAINER> | grep error >> logs_error.txt
若是公司有本身的內部日誌分析系統,這裏能夠天天定時採集錯誤日誌,並將錯誤日誌文件,導入日誌系統,分析。