// RPC primitives for safcm: logging constants // Copyright (C) 2021 Simon Ruderich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . 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 }