aboutsummaryrefslogtreecommitdiffstats
path: root/modules/log/provider.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/log/provider.go')
-rw-r--r--modules/log/provider.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/modules/log/provider.go b/modules/log/provider.go
new file mode 100644
index 0000000000..b31bf392e6
--- /dev/null
+++ b/modules/log/provider.go
@@ -0,0 +1,26 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package log
+
+// LoggerProvider represents behaviors of a logger provider.
+type LoggerProvider interface {
+ Init(config string) error
+ EventLogger
+}
+
+type loggerProvider func() LoggerProvider
+
+var providers = make(map[string]loggerProvider)
+
+// Register registers given logger provider to providers.
+func Register(name string, log loggerProvider) {
+ if log == nil {
+ panic("log: register provider is nil")
+ }
+ if _, dup := providers[name]; dup {
+ panic("log: register called twice for provider \"" + name + "\"")
+ }
+ providers[name] = log
+}