Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/grumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOla Bini <ola@autonomia.digital>2020-03-26 17:09:03 +0300
committerOla Bini <ola@autonomia.digital>2020-03-26 17:09:03 +0300
commit9c082d3516187cbf2a334f0dbe907717afcaedf1 (patch)
treebafcf552b073497fcb5777540e870c49db0f4465
parentdd6f383d3e57dd3fcd589e289a23ec5d3b292d5f (diff)
Make OpenFile a factory function instead of a method on LogTarget. Use this to initialize the default logging target
-rw-r--r--cmd/grumble/grumble.go2
-rw-r--r--pkg/logtarget/logtarget.go25
2 files changed, 12 insertions, 15 deletions
diff --git a/cmd/grumble/grumble.go b/cmd/grumble/grumble.go
index 6d2c93a..04f87c7 100644
--- a/cmd/grumble/grumble.go
+++ b/cmd/grumble/grumble.go
@@ -37,7 +37,7 @@ func main() {
dataDir.Close()
// Set up logging
- err = logtarget.Default.OpenFile(Args.LogPath)
+ logtarget.Default, err = logtarget.OpenFile(Args.LogPath)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to open log file (%v): %v", Args.LogPath, err)
return
diff --git a/pkg/logtarget/logtarget.go b/pkg/logtarget/logtarget.go
index 6ad43f5..950458a 100644
--- a/pkg/logtarget/logtarget.go
+++ b/pkg/logtarget/logtarget.go
@@ -19,7 +19,6 @@ import (
type LogTarget interface {
io.Writer
- OpenFile(string) error
Rotate() error
}
@@ -32,8 +31,17 @@ type fileLogTarget struct {
var Default LogTarget
-func init() {
- Default = &fileLogTarget{}
+// OpenFile creates a LogTarget pointing to a log file
+// and returns it.
+// This method will open the file in append-only mode.
+func OpenFile(fileName string) (t LogTarget, err error) {
+ target := &fileLogTarget{}
+ target.logfn = fileName
+ target.file, err = os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0650)
+ if err != nil {
+ return nil, err
+ }
+ return target, nil
}
// Write writes a log message to all registered io.Writers
@@ -58,17 +66,6 @@ func (target *fileLogTarget) Write(in []byte) (int, error) {
return len(in), nil
}
-// OpenFile opens the main log file for writing.
-// This method will open the file in append-only mode.
-func (target *fileLogTarget) OpenFile(fn string) (err error) {
- target.logfn = fn
- target.file, err = os.OpenFile(target.logfn, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0650)
- if err != nil {
- return err
- }
- return nil
-}
-
// Rotate rotates the current log file.
// This method holds a lock while rotating the log file,
// and all log writes will be held back until the rotation