Logger
Logger 集成可让您定义 Home Assistant 中日志活动的级别。
要在您的安装中启用 logger 集成,请将以下内容添加到 configuration.yaml 文件中:
# configuration.yaml 示例条目
logger:
如果未在 configuration.yaml 中启用 logger 集成,则日志严重性级别默认为 warning。
如果您想记录所有消息,并忽略指定集成中低于 critical 的事件:
# configuration.yaml 示例条目
logger:
default: info
logs:
homeassistant.components.yamaha: critical
custom_components.my_integration: critical
如果您想忽略所有低于 critical 的消息,但为指定集成记录事件:
# configuration.yaml 示例条目
logger:
default: critical
logs:
# log level for HA core
homeassistant.core: fatal
# log level for MQTT integration
homeassistant.components.mqtt: warning
# log level for all python scripts
homeassistant.components.python_script: warning
# individual log level for this python script
homeassistant.components.python_script.my_new_script.py: debug
# log level for SmartThings lights
homeassistant.components.smartthings.light: info
# log level for a custom integration
custom_components.my_integration: debug
# log level for the `aiohttp` Python package
aiohttp: error
# log level for both 'glances_api' and 'glances' integration
homeassistant.components.glances: fatal
glances_api: fatal
日志条目格式如下:
timestamp log-level thread [namespace] message
其中 namespace 是当前正在记录日志的 <component_namespace>。
default:
description: Default log level. See [log_level](#log-levels).
required: false
type: string
logs:
description: List of integrations and their log level.
required: false
type: map
keys:
'<component_namespace>':
description: Logger namespace of the integration. See [log_level](#log-levels).
type: string
filters:
description: Regular Expression logging filters.
required: false
type: map
keys:
'<component_namespace>':
description: Logger namespace of the integration and a list of Regular Expressions. See [Log Filters](#log-filters).
type: list
在示例中,请注意 glances_api 与 homeassistant.components.glances 这两个 namespace 的区别,二者都位于根级别,但分别由不同 API 记录。
如果您想知道自己环境中的 namespace,请查看启动时的日志文件。
您会看到来自 homeassistant.loader 的 INFO 日志消息,其中会显示 loaded <component> from <namespace>。
这些就是您可以设置 log level 的 namespace。
日志级别
可用的日志严重性级别,按从高到低排序如下:
- critical
- fatal
- error
- warning
- warn
- info
- debug
- notset
日志过滤器
用于日志的服务级正则表达式过滤器。若消息匹配该正则表达式,则会被忽略。
配置示例如下:
# configuration.yaml 示例条目
logger:
default: info
logs:
custom_components.my_integration: critical
filters:
custom_components.my_integration:
- "HTTP 429" # Filter all HTTP 429 errors
- "Request to .*unreliable.com.* Timed Out"
homeassistant.components.nws:
- "^Error handling request$"
操作
操作:设置默认级别
logger.set_default_level 操作用于修改默认日志级别(适用于未指定日志级别的集成)。
调用示例如下:
action: logger.set_default_level
data:
level: info
操作:设置级别
logger.set_level 操作用于修改一个或多个集成的日志级别。
它接受与配置中 logs 相同的格式。
调用示例如下:
action: logger.set_level
data:
homeassistant.core: fatal
homeassistant.components.mqtt: warning
homeassistant.components.smartthings.light: info
custom_components.my_integration: debug
aiohttp: error
查看日志
您可以在 Settings > System > Logs 中查看和下载日志信息。
在 Container 安装中查看日志
对于 Home Assistant Container 安装,日志信息会存储在配置目录中的 home-assistant.log 文件里。
您可以使用命令行工具 cat 读取,或使用 tail -f 动态查看。
当您通过 Home Assistant 的 SSH 应用(以前称为 SSH add-on)登录后,可以使用以下示例:
tail -f /config/home-assistant.log
在 Docker 中,您可以直接使用宿主机命令行。使用以下命令动态查看日志:
# 动态跟踪日志
docker logs --follow MY_CONTAINER_ID
如需查看其他选项,请使用 --help,或者不带参数直接显示完整日志。