如何高效檢視 Docker 日志
開發基于 Docker的應用時,用好 log 可以大大提高排錯效率,下面就是幾個常用的 log 操作技巧:
- 顯示所有 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 filename
一樣,可以把最新内容重新整理顯示到螢幕上。
$ docker logs -f <CONTAINER>
3. 使用 tail 檢視 log 尾部
效果和Linux的
tail-n20filename
一樣,顯示最後20行的内容。
$ docker logs --tail 20 <CONTAINER>
4. 使用 grep 過濾 log
例如查找所有包含 “error” 的log:
$ docker logs | grep error
5. 根據時間檢視 log
比如隻想檢視某個時間點之後的日志,使用
--since
選項,顯示從指定時間點到最新的日志:
$ docker logs --since 2018-09-25T12:01:46.452616Z <CONTAINER>
--since
指定了開始時間點,還可以指定結束時間點,使用選項
--until
,顯示二者之間的日志:
$ docker logs --since 2018-09-25T12:01:48.551341Z --until 2018-09-25T12:01:48.561714Z <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