// 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 import ( "log" "codeberg.org/gruf/go-byteutil" "codeberg.org/gruf/go-kv/v2" ) // NewStdLogger returns a new standard library // log.Logger instance that will write output // to this library's logging functions at 'lvl'. func NewStdLogger(lvl LEVEL) *log.Logger { return log.New(stdLogWriter{lvl: lvl}, "", 0) } type stdLogWriter struct{ lvl LEVEL } func (w stdLogWriter) Write(b []byte) (int, error) { if w.lvl <= loglvl { logf(nil, w.lvl, kv.Fields{ {K: "caller", V: Caller(5)}, {K: "msg", V: byteutil.B2S(b)}, }, "") } return len(b), nil }