mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-03-09 07:13:35 -05:00
Previously, `makeLogHandler()` hardcoded "standard" as the logfile name passed to `getLogWriter()`, causing all log categories (`database`, `http`, `events`, `mail`) to write to `standard.log` instead of their own files. Add a logfile parameter to `makeLogHandler()` so each caller specifies its category name, producing `database.log`, `http.log`, `echo.log`, `events.log`, and `mail.log` as expected. Fixes https://github.com/go-vikunja/vikunja/issues/2177
105 lines
2.8 KiB
Go
105 lines
2.8 KiB
Go
// Vikunja is a to-do list application to facilitate your life.
|
|
// Copyright 2018-present Vikunja and contributors. All rights reserved.
|
|
//
|
|
// 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 <https://www.gnu.org/licenses/>.
|
|
|
|
package log
|
|
|
|
import (
|
|
"fmt"
|
|
"log/slog"
|
|
|
|
"xorm.io/xorm/log"
|
|
)
|
|
|
|
// XormLogger holds an implementation of the xorm logger interface.
|
|
type XormLogger struct {
|
|
logger *slog.Logger
|
|
showSQL bool
|
|
}
|
|
|
|
// NewXormLogger creates and initializes a new xorm logger
|
|
func NewXormLogger(configLogEnabled bool, configLogDatabase string, configLogDatabaseLevel string, configLogFormat string) *XormLogger {
|
|
handler := makeLogHandler(configLogEnabled, configLogDatabase, "database", configLogDatabaseLevel, configLogFormat)
|
|
|
|
xormLogger := &XormLogger{
|
|
logger: slog.New(handler).With("component", "database"),
|
|
}
|
|
|
|
xormLogger.showSQL = true
|
|
|
|
return xormLogger
|
|
}
|
|
|
|
// Debug logs a debug string
|
|
func (x *XormLogger) Debug(v ...interface{}) {
|
|
x.logger.Debug(fmt.Sprint(v...))
|
|
}
|
|
|
|
// Debugf logs a debug string
|
|
func (x *XormLogger) Debugf(format string, v ...interface{}) {
|
|
x.logger.Debug(fmt.Sprintf(format, v...))
|
|
}
|
|
|
|
// Error logs a debug string
|
|
func (x *XormLogger) Error(v ...interface{}) {
|
|
x.logger.Error(fmt.Sprint(v...))
|
|
}
|
|
|
|
// Errorf logs a debug string
|
|
func (x *XormLogger) Errorf(format string, v ...interface{}) {
|
|
x.logger.Error(fmt.Sprintf(format, v...))
|
|
}
|
|
|
|
// Info logs an info string
|
|
func (x *XormLogger) Info(v ...interface{}) {
|
|
x.logger.Info(fmt.Sprint(v...))
|
|
}
|
|
|
|
// Infof logs an info string
|
|
func (x *XormLogger) Infof(format string, v ...interface{}) {
|
|
x.logger.Info(fmt.Sprintf(format, v...))
|
|
}
|
|
|
|
// Warn logs a warning string
|
|
func (x *XormLogger) Warn(v ...interface{}) {
|
|
x.logger.Warn(fmt.Sprint(v...))
|
|
}
|
|
|
|
// Warnf logs a warning string
|
|
func (x *XormLogger) Warnf(format string, v ...interface{}) {
|
|
x.logger.Warn(fmt.Sprintf(format, v...))
|
|
}
|
|
|
|
// Level returns the current set log level
|
|
func (x *XormLogger) Level() log.LogLevel {
|
|
return log.LOG_DEBUG
|
|
}
|
|
|
|
// SetLevel sets the log level
|
|
func (x *XormLogger) SetLevel(_ log.LogLevel) {
|
|
}
|
|
|
|
// ShowSQL sets whether to show the log level or not
|
|
func (x *XormLogger) ShowSQL(show ...bool) {
|
|
if len(show) > 0 {
|
|
x.showSQL = show[0]
|
|
}
|
|
}
|
|
|
|
// IsShowSQL returns if sql queries should be shown
|
|
func (x *XormLogger) IsShowSQL() bool {
|
|
return x.showSQL
|
|
}
|