1 // Copyright 2018-2025 JDCLOUD.COM
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 15 package core
16 17 import "fmt"
18 19 const (
20 LogFatal = iota
21 LogError
22 LogWarn
23 LogInfo
24 )
25 26 type Logger interface {
27 Log(level int, message ...interface{})
28 }
29 30 type DefaultLogger struct {
31 Level int
32 }
33 34 func NewDefaultLogger(level int) *DefaultLogger {
35 return &DefaultLogger{level}
36 }
37 38 func (logger DefaultLogger) Log(level int, message ...interface{}) {
39 if level <= logger.Level {
40 fmt.Println(message...)
41 }
42 }
43 44 type DummyLogger struct {
45 }
46 47 func NewDummyLogger() *DummyLogger {
48 return &DummyLogger{}
49 }
50 51 func (logger DummyLogger) Log(level int, message ...interface{}) {
52 }
53