annotate pkg/log/log.go @ 5688:6281c18b109f sr-v2

Finsh serializing v2 meshes.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 12 Feb 2024 02:27:41 +0100
parents 1222b777f51f
children 2dd155cc95ec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 // This is Free Software under GNU Affero General Public License v >= 3.0
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2 // without warranty, see README.md and license for details.
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 //
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 // SPDX-License-Identifier: AGPL-3.0-or-later
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 // License-Filename: LICENSES/AGPL-3.0.txt
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 //
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 // Copyright (C) 2021 by via donau
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 // – Österreichische Wasserstraßen-Gesellschaft mbH
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 // Software engineering by Intevation GmbH
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 //
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 // Author(s):
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 // * Sascha L. Teichmann <sascha.teichmann@intevation.de>
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 package log
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 import (
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 "fmt"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 lg "log"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 "os"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 "strings"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 "sync"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 "sync/atomic"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 )
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
25 // Level is an enumeration symbolizing a log level.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
26 type Level uint32
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 const (
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
29 // TraceLogLevel is the TRACE log level.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
30 TraceLogLevel = Level(iota)
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
31 // DebugLogLevel is the DEBUG log level.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 DebugLogLevel
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
33 // InfoLogLevel is the INFO log level.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 InfoLogLevel
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
35 // WarnLogLevel is the WARN log level.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 WarnLogLevel
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
37 // ErrorLogLevel is the ERROR log level.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 ErrorLogLevel
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
39 // FatalLogLevel is the FATAL log level.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 FatalLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 )
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 var (
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 logLevel = uint32(InfoLogLevel)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 logFileMu sync.Mutex
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 logFile *os.File
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 )
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 func init() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 lg.SetFlags(lg.LstdFlags | lg.Lshortfile)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
53 const callDepth = 2
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
54
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
55 // SetupLog redirects the log output to a given file.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
56 // The file is opened in append mode with the given
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
57 // permisssions. A previously opened log file will
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
58 // be closed.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 func SetupLog(filename string, perm os.FileMode) error {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 f, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, perm)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 if err != nil {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 return err
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 logFileMu.Lock()
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 defer logFileMu.Unlock()
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 if logFile != nil {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 logFile.Close()
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 logFile = f
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 lg.SetOutput(logFile)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 return nil
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
74 // ShutdownLog closes an open log file (if there is any in use)
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
75 // and redirects the output to stderr.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 func ShutdownLog() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 logFileMu.Lock()
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 defer logFileMu.Unlock()
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 if logFile != nil {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 logFile.Close()
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 logFile = nil
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 lg.SetOutput(os.Stderr)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
86 // ParseLogLevel converts a strings representation
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
87 // of a log level to the reprective log level.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
88 // If the log level is unknown InfoLogLevel is
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
89 // returned.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
90 func ParseLogLevel(s string) Level {
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 switch strings.ToLower(s) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 case "trace":
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 return TraceLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 case "debug":
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 return DebugLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96 case "info":
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 return InfoLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 case "warn":
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 return WarnLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 case "error":
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 return ErrorLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 case "fatal":
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 return FatalLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 default:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 return InfoLogLevel
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
109 // String implements the fmt.Stringer interface.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
110 func (level Level) String() string {
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 switch level {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 case TraceLogLevel:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 return "trace"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114 case DebugLogLevel:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 return "debug"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
116 case InfoLogLevel:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117 return "info"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 case WarnLogLevel:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 return "warn"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120 case ErrorLogLevel:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 return "error"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 case FatalLogLevel:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 return "fatal"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 default:
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 return "unknown"
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
129 // GetLogLevel returns the currently active log level.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
130 func GetLogLevel() Level {
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
131 return Level(atomic.LoadUint32(&logLevel))
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
134 // SetLogLevel sets the log level to be active.
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
135 func SetLogLevel(level Level) {
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 atomic.StoreUint32(&logLevel, uint32(level))
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
139 // Tracef formats a log message as a TRACE output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 func Tracef(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 if TraceLogLevel >= GetLogLevel() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
143 lg.Output(callDepth, "[TRACE] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
147 // Traceln line prints a log message as a TRACE output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 func Traceln(s string) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 if TraceLogLevel >= GetLogLevel() {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
150 lg.Output(callDepth, "[TRACE] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
154 // Debugf formats a log message as a DEBUG output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
155 func Debugf(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 if DebugLogLevel >= GetLogLevel() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
158 lg.Output(callDepth, "[DEBUG] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
161
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
162 // Debugln line prints a log message as a DEBUG output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
163 func Debugln(s string) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
164 if DebugLogLevel >= GetLogLevel() {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
165 lg.Output(callDepth, "[DEBUG] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
166 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
168
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
169 // Infof formats a log message as a INFO output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
170 func Infof(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
171 if InfoLogLevel >= GetLogLevel() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
172 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
173 lg.Output(callDepth, "[INFO] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
174 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
175 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
176
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
177 // Infoln line prints a log message as a INFO output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
178 func Infoln(s string) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
179 if InfoLogLevel >= GetLogLevel() {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
180 lg.Output(callDepth, "[INFO] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
181 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
182 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
183
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
184 // Warnf formats a log message as a WARN output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
185 func Warnf(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
186 if WarnLogLevel >= GetLogLevel() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
187 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
188 lg.Output(callDepth, "[WARN] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
189 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
190 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
191
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
192 // Warnln line prints a log message as a WARN output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
193 func Warnln(s string) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
194 if WarnLogLevel >= GetLogLevel() {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
195 lg.Output(callDepth, "[WARN] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
196 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
197 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
198
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
199 // Errorf formats a log message as an ERROR output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
200 func Errorf(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
201 if ErrorLogLevel >= GetLogLevel() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
202 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
203 lg.Output(callDepth, "[ERROR] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
204 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
205 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
206
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
207 // Errorln line prints a log message as an ERROR output.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
208 func Errorln(s string) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
209 if ErrorLogLevel >= GetLogLevel() {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
210 lg.Output(callDepth, "[ERROR] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
211 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
212 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
213
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
214 // Fatalf formats a log message as a FATAL output
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
215 // and terminates the programs with an error code (1).
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
216 func Fatalf(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
217 if FatalLogLevel >= GetLogLevel() {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
218 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
219 lg.Output(callDepth, "[FATAL] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
220 os.Exit(1)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
221 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
222 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
223
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
224 // Fatalln line prints a log message as a FATAL output
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
225 // and terminates the programs with an error code (1).
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
226 func Fatalln(s string) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
227 if FatalLogLevel >= GetLogLevel() {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
228 lg.Output(callDepth, "[FATAL] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
229 os.Exit(1)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
230 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
231 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
232
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
233 // Panicf formats a log message as a PANIC output
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
234 // and throws a panic.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
235 func Panicf(f string, args ...interface{}) {
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
236 s := fmt.Sprintf(f, args...)
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
237 lg.Output(callDepth, "[PANIC] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
238 panic(s)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
239 }
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
240
5601
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
241 // Panicln line prints a log message as a PANIC output
1222b777f51f Made golint finally happy.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5492
diff changeset
242 // and throws a panic.
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
243 func Panicln(s string) {
5492
b4f59aef3f9e Use correct calldepth for logging.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5490
diff changeset
244 lg.Output(callDepth, "[PANIC] "+s)
5490
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
245 panic(s)
5f47eeea988d Use own logging package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
246 }