目錄
- 1、導出全部的log到文件
- 2、按照時間導出log信息
- 3、按照log中可能包含的字符串,導出log信息
- 總結
想查詢一下docker容器內服務的log,但是因為log太多,想自定義篩選一下。
1、導出全部的log到文件
docker logs dockerId >>log.txt
2、按照時間導出log信息
但是全部的log太多,我想按照時間進行查詢,這就用到了–since參數
–since參數的含義是,顯示某個時間點后的log信息,也可以是相對于現在多長時間的log信息
顯示某個時間點后的log信息。下面命令,查詢的是2023年4月28日之后的log信息
docker logs --since="2023-04-28" 容器id >> file.log
也可以是日期+時間或者時間戳
docker logs --since="2023-04-28 00:00:00" 容器id >>file.log docker logs --since="1682665239" 容器id >>file.log
相對于現在多長時間的log信息。下面的命令,查詢的是過去10分鐘的log信息
docker logs --since 10m 容器id >>file.log
還可以配合著–until參數,查詢某個時間段內的log信息
docker logs --since="2023-04-28T00:00:00" --until "2023-04-28T12:00:00" 容器id >>file.log
3、按照log中可能包含的字符串,導出log信息
docker logs 容器id |grep '處理失敗' >> file.log
但是上面的檢索我們沒辦法定位報錯信息的上下文可以用-A -B -C匹配
docker logs 容器id | grep -A 10 '處理失敗' # 打印匹配行的后10行 docker logs 容器id | grep -B 10 '處理失敗' # 打印匹配行的前10行 docker logs 容器id | grep -C 10 '處理失敗' # 打印匹配行的前后10行
docker logs 的一些參數,以及參數的含義
運行:docker logs –help 命令
Options: --details Show extra details provided to logs -f, --follow Follow log output --since string Show logs since timestamp (e.g. "2013-01-02T13:23:37Z") or relative (e.g. "42m" for 42 minutes) -n, --tail string Number of lines to show from the end of the logs (default "all") -t, --timestamps Show timestamps --until string Show logs before a timestamp (e.g. "2013-01-02T13:23:37Z") or relative (e.g. "42m" for 42 minutes)
含義:
Options: --details 顯示提供給日志的額外詳細信息 -f, --follow 監控日志輸出 --since string 顯示自時間戳之后的日志(例如“2013-01-02T13:23:37Z”)或相關日志(例如“42m”42分鐘) -n, --tail string 從日志末尾開始顯示的行數(默認為“全部”) -t, --timestamps 顯示時間戳 --until string 在時間戳(例如“2013-01-02T13:23:37Z”)或相對時間戳(例如“42m”42分鐘)之前顯示日志