
# ccictl logs
#### 操作背景
打印 Pod 或指定资源中某个容器的日志。如果 Pod 只有一个容器，则容器名称是可选的。
```
ccictl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]
```
#### 示例
```
# 返回只有一个容器的 nginx Pod 中的快照日志
ccictl logs nginx
# 从 nginx Pod 返回快照日志，每行前面加上来源的 Pod 和容器名称
ccictl logs nginx --prefix
# 从 nginx Pod 返回快照日志，限制输出为 500 字节
ccictl logs nginx --limit-bytes=500
# 从 nginx Pod 返回快照日志，等待其启动运行最多 20 秒
ccictl logs nginx --pod-running-timeout=20s
# 返回有多个容器的 nginx Pod 中的快照日志
ccictl logs nginx --all-containers=true
# 返回带 app=nginx 标签定义的 Pod 中所有容器的快照日志
ccictl logs -l app=nginx --all-containers=true
# 返回带 app=nginx 标签定义的 Pod 中容器的快照日志，限制并发日志请求为 10 个 Pod
ccictl logs -l app=nginx --max-log-requests=10
# 返回 web-1 Pod 中之前终止的 ruby 容器日志的日志
ccictl logs -p -c ruby web-1
# 开始从 nginx Pod 流式传输日志，即使发生错误也继续
ccictl logs nginx -f --ignore-errors=true
# 开始流式传输 web-1 Pod 中 ruby 容器的日志
ccictl logs -f -c ruby web-1
# 开始流式传输带 app=nginx 标签定义的 Pod 中所有容器的日志
ccictl logs -f -l app=nginx --all-containers=true
# 仅显示 nginx Pod 的最近 20 行输出
ccictl logs --tail=20 nginx
# 显示 nginx Pod 在过去一小时内写入的所有日志
ccictl logs --since=1h nginx
# 显示从 2024 年 8 月 30 日 06:00:00 UTC 开始 nginx Pod 中所有带时间戳的日志
ccictl logs nginx --since-time=2024-08-30T06:00:00Z --timestamps=true
# 显示 nginx pod 的日志，跳过kubelet证书验证
ccictl logs --insecure-skip-tls-verify-backend nginx
# 返回 nginx Deployment 的 nginx-1 容器的快照日志
ccictl logs deployment/nginx -c nginx-1
```
#### 选项
```
--all-containers
```
获取 Pod 中所有容器的日志。
```
-c, --container string
```
打印指定容器的日志。
```
-f, --follow
```
指定日志是否应以流式传输。
```
-h, --help
```
logs 操作的帮助命令。
```
--ignore-errors
```
如果在监视/跟随 Pod 日志，则允许出现任何非致命的错误。
```
--insecure-skip-tls-verify-backend
```
跳过请求日志来源的 kubelet 的身份验证。从理论上讲，攻击者可能会提供无效的日志内容。 如果您的 kubelet 提供的证书已过期，您可能需要使用此参数。
```
--limit-bytes int
```
要返回的日志的最大字节数。默认为无限制。
```
--max-log-requests int     默认值：5
```
指定使用选择算符时要遵循的最大并发日志数。默认值为 5。
```
--pod-running-timeout duration     默认值：20s
```
等待至少一个 Pod 运行的时长（例如 5s、2m 或 3h，大于零）。
```
--prefix
```
在每行日志前添加日志来源（Pod 名称和容器名称）的前缀。
```
-p, --previous
```
如果为 true，则打印 Pod 中容器的前一个实例的日志（如果存在）。
```
-l, --selector string
```
过滤所用的选择算符（标签查询），支持 '='、'==' 和 '！='。 （例如 -l key1=value1,key2=value2）。匹配的对象必须满足所有指定的标签约束。
```
--since duration
```
仅返回比相对时长更新的日志，如 5s、2m 或 3h。 默认返回所有日志。只能使用 since-time 和 since 之一。
```
--since-time string
```
仅返回特定日期（RFC3339）之后的日志。默认返回所有日志。 只能使用 since-time 和 since 之一。
```
--tail int     默认值：-1
```
要显示的最近日志文件的行数。不带选择算符时默认为 -1 将显示所有日志行。 否则如果提供了选择算符，则为 10。
```
--timestamps
```
在日志输出的每一行中包含时间戳。
**ccictl选项亦可在子命令中生效，列表如下：**
[父命令ccictl选项列表](https://support.huaweicloud.com/devg-cci2/ccictl_01.html#ccictl_01__section188081236162119)
