code.gitea.io/gitea@v1.19.3/modules/log/provider.go (about)

     1  // Copyright 2019 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package log
     5  
     6  // LoggerProvider represents behaviors of a logger provider.
     7  type LoggerProvider interface {
     8  	Init(config string) error
     9  	Content() (string, error)
    10  	EventLogger
    11  }
    12  
    13  type loggerProvider func() LoggerProvider
    14  
    15  var providers = make(map[string]loggerProvider)
    16  
    17  // Register registers given logger provider to providers.
    18  func Register(name string, log loggerProvider) {
    19  	if log == nil {
    20  		panic("log: register provider is nil")
    21  	}
    22  	if _, dup := providers[name]; dup {
    23  		panic("log: register called twice for provider \"" + name + "\"")
    24  	}
    25  	providers[name] = log
    26  }