|
- // Copyright © 2023 OpenIM open source community. All rights reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
-
- package log
-
- import (
- "runtime"
- "strings"
-
- "github.com/sirupsen/logrus"
-
- "github.com/OpenIMSDK/OpenKF/server/pkg/utils"
- )
-
- type filelineHook struct{}
-
- func newFilelineHook() *filelineHook {
- return &filelineHook{}
- }
-
- func (hook *filelineHook) Levels() []logrus.Level {
- return logrus.AllLevels
- }
-
- func (hook *filelineHook) Fire(entry *logrus.Entry) error {
- var s string
- _, file, line, _ := runtime.Caller(8)
- i := strings.SplitAfter(file, "/")
- if len(i) > 3 {
- s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(line)
- }
- entry.Data["FilePath"] = s
-
- return nil
- }
|