From 9119897633f0c5deb16894f752270cf72cac821f Mon Sep 17 00:00:00 2001 From: kim Date: Fri, 20 Sep 2024 13:35:19 +0100 Subject: [PATCH] move logging levels into log package itself --- internal/log/level.go | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 internal/log/level.go diff --git a/internal/log/level.go b/internal/log/level.go new file mode 100644 index 000000000..b18c5a536 --- /dev/null +++ b/internal/log/level.go @@ -0,0 +1,50 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero 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 Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package log + +// LEVEL defines a level of logging. +type LEVEL uint8 + +// Default levels of logging. +const ( + UNSET LEVEL = 0 + PANIC LEVEL = 1 + FATAL LEVEL = 50 + ERROR LEVEL = 100 + WARN LEVEL = 150 + INFO LEVEL = 200 + DEBUG LEVEL = 250 + TRACE LEVEL = 254 + ALL LEVEL = ^LEVEL(0) +) + +// available logging level outputs. +var levels = [int(ALL) + 1]string{ + TRACE: "TRACE", + DEBUG: "DEBUG", + INFO: "INFO", + WARN: "WARN", + ERROR: "ERROR", + FATAL: "FATAL", + PANIC: "PANIC", +} + +// CanLog returns whether an incoming log of 'lvl' can be logged against receiving level. +func (loglvl LEVEL) CanLog(lvl LEVEL) bool { + return loglvl > lvl +}