88 lines
1.7 KiB
Bash
Executable File
88 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Copyright (c) 2026 AMLOGIC
|
|
#
|
|
# AMLbian logging helpers
|
|
|
|
# 将日志等级转换为可比较的数值,数值越大表示严重级别越高
|
|
function aml_log_level_value() {
|
|
case "$1" in
|
|
debug | all)
|
|
echo 10
|
|
;;
|
|
info)
|
|
echo 20
|
|
;;
|
|
warn | warning | wrn)
|
|
echo 30
|
|
;;
|
|
error | err | critical)
|
|
echo 40
|
|
;;
|
|
*)
|
|
return 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function aml_log_should_emit() {
|
|
local level="$1"
|
|
local debuglevel_value
|
|
local level_value
|
|
|
|
if [[ ! -v DEBUGLEVEL ]]; then
|
|
return 0
|
|
fi
|
|
|
|
debuglevel_value=$(aml_log_level_value "${DEBUGLEVEL}") || return 1
|
|
level_value=$(aml_log_level_value "${level}") || return 1
|
|
|
|
[[ ${level_value} -ge ${debuglevel_value} ]]
|
|
}
|
|
|
|
function aml_log_validate_debuglevel() {
|
|
if [[ ! -v DEBUGLEVEL ]]; then
|
|
return 0
|
|
fi
|
|
|
|
if ! aml_log_level_value "${DEBUGLEVEL}" > /dev/null; then
|
|
display_alert "Invalid DEBUGLEVEL" "received '${DEBUGLEVEL}'; valid values: debug, info, warn, warning, wrn, error, err, critical, all" "error"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# AMLbian 日志入口
|
|
# 参数:$1=等级,$2=消息,$3=详细内容
|
|
function aml_log() {
|
|
local level="$1"
|
|
local message="$2"
|
|
local detail="${3:-}"
|
|
local AMLbian_message="[AMLbian] ${message}"
|
|
|
|
case "${level}" in
|
|
warning | wrn)
|
|
level="warn"
|
|
;;
|
|
err | critical)
|
|
level="error"
|
|
;;
|
|
all)
|
|
level="debug"
|
|
;;
|
|
esac
|
|
|
|
if ! aml_log_should_emit "${level}"; then
|
|
return 0
|
|
fi
|
|
|
|
if [[ "${level}" == "debug" && -v DEBUGLEVEL ]]; then
|
|
SHOW_DEBUG=yes display_alert "${AMLbian_message}" "${detail}" "${level}" || return 0
|
|
else
|
|
display_alert "${AMLbian_message}" "${detail}" "${level}" || return 0
|
|
fi
|
|
|
|
return 0
|
|
}
|