// RPC primitives for safcm: logging constants // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (C) 2021-2024 Simon Ruderich package safcm import ( "fmt" ) // LogLevel controls the number of displayed log messages. Higher levels // include all messages from lower levels (e.g. LogVerbose includes all // messages from LogInfo). type LogLevel int const ( _ LogLevel = iota // Log only errors LogError // Log changes LogInfo // Log host information and changes on remote host LogVerbose // Log additional information and commands leading up to the changes LogDebug // Log output of all commands LogDebug2 // Log all RPC messages LogDebug3 ) func ParseLogLevel(s string) (LogLevel, error) { var x LogLevel switch s { case "error": x = LogError case "info": x = LogInfo case "verbose": x = LogVerbose case "debug": x = LogDebug case "debug2": x = LogDebug2 case "debug3": x = LogDebug3 default: return 0, fmt.Errorf("invalid LogLevel %q", s) } return x, nil }