日志配置

配置原文
# hostapd event logger configuration
#
# Two output method: syslog and stdout (only usable if not forking to
# background).
#
# Module bitfield (ORed bitfield of modules that will be logged; -1 = all
# modules):
# bit 0 (1) = IEEE 802.11
# bit 1 (2) = IEEE 802.1X
# bit 2 (4) = RADIUS
# bit 3 (8) = WPA
# bit 4 (16) = driver interface
# bit 6 (64) = MLME
#
# Levels (minimum value for logged events):
#  0 = verbose debugging
#  1 = debugging
#  2 = informational messages
#  3 = notification
#  4 = warning
#
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
  • 实现使用 unsigned int 表示 logger_syslog 和 logger_stdout

OpenWRT 默认配置
logger_syslog=127
logger_syslog_level=2
logger_stdout=127
logger_stdout_level=2
  • OpenWRT 的 log 组件 buffer 会循环记录日志,使用 logread 进行查看

OpenWRT hostapd 脚本
hostapd_set_log_options() {
    local var="$1"

    local log_level log_80211 log_8021x log_radius log_wpa log_driver log_iapp log_mlme
    json_get_vars log_level log_80211 log_8021x log_radius log_wpa log_driver log_iapp log_mlme

    set_default log_level 2
    set_default log_80211  1
    set_default log_8021x  1
    set_default log_radius 1
    set_default log_wpa    1
    set_default log_driver 1
    set_default log_iapp   1
    set_default log_mlme   1

    local log_mask="$(( \
        ($log_80211  << 0) | \
        ($log_8021x  << 1) | \
        ($log_radius << 2) | \
        ($log_wpa    << 3) | \
        ($log_driver << 4) | \
        ($log_iapp   << 5) | \
        ($log_mlme   << 6)   \
    ))"

    append "$var" "logger_syslog=$log_mask" "$N"
    append "$var" "logger_syslog_level=$log_level" "$N"
    append "$var" "logger_stdout=$log_mask" "$N"
    append "$var" "logger_stdout_level=$log_level" "$N"

    return 0
}
  • log_level 控制 logger_{*}_level,默认级别为 2

  • log_{*} 可以分别进行控制各个模块,默认控制为全开

  • 脚本存在 bit 5,即 iapp 的控制,需要考证

  • 注意:配置级别为 radio,而不是 iface

OpenWRT uci 配置命令
uci set wireless.radio0.log_level='4'
uci set wireless.radio0.log_80211=1
uci set wireless.radio0.log_8021x=1
uci set wireless.radio0.log_radius=1
uci set wireless.radio0.log_wpa=1
uci set wireless.radio0.log_driver=1
uci set wireless.radio0.log_iapp=1
uci set wireless.radio0.log_mlme=1