// 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 <http://www.gnu.org/licenses/>.
+// 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).
// 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
+}