rewrite logger

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2020-11-04 00:38:12 +03:00
parent 7c311aea19
commit e41bb5ebc5
26 changed files with 235 additions and 387 deletions

View File

@@ -36,7 +36,7 @@ func (a *autocertProvider) TLSConfig(hosts ...string) (*tls.Config, error) {
dir := cacheDir()
if err := os.MkdirAll(dir, 0700); err != nil {
if logger.V(logger.InfoLevel) {
logger.Infof("warning: autocert not using a cache: %v", err)
logger.Info("warning: autocert not using a cache: %v", err)
}
} else {
m.Cache = autocert.DirCache(dir)

View File

@@ -15,7 +15,7 @@ type httpServer struct {
mux *http.ServeMux
opts server.Options
mtx sync.RWMutex
sync.RWMutex
address string
exit chan chan error
}
@@ -30,8 +30,8 @@ func NewServer(address string, opts ...server.Option) server.Server {
}
func (s *httpServer) Address() string {
s.mtx.RLock()
defer s.mtx.RUnlock()
s.RLock()
defer s.RUnlock()
return s.address
}
@@ -57,6 +57,9 @@ func (s *httpServer) Start() error {
var l net.Listener
var err error
s.RLock()
config := s.opts
s.RUnlock()
if s.opts.EnableACME && s.opts.ACMEProvider != nil {
// should we check the address to make sure its using :443?
l, err = s.opts.ACMEProvider.Listen(s.opts.ACMEHosts...)
@@ -70,19 +73,19 @@ func (s *httpServer) Start() error {
return err
}
if logger.V(logger.InfoLevel) {
logger.Infof("HTTP API Listening on %s", l.Addr().String())
if config.Logger.V(logger.InfoLevel) {
config.Logger.Info("HTTP API Listening on %s", l.Addr().String())
}
s.mtx.Lock()
s.Lock()
s.address = l.Addr().String()
s.mtx.Unlock()
s.Unlock()
go func() {
if err := http.Serve(l, s.mux); err != nil {
// temporary fix
if logger.V(logger.ErrorLevel) {
logger.Errorf("serve err: %v", err)
if config.Logger.V(logger.ErrorLevel) {
config.Logger.Error("serve err: %v", err)
}
s.Stop()
}

View File

@@ -6,6 +6,7 @@ import (
"github.com/unistack-org/micro/v3/api/resolver"
"github.com/unistack-org/micro/v3/api/server/acme"
"github.com/unistack-org/micro/v3/logger"
)
// Option func
@@ -21,11 +22,14 @@ type Options struct {
TLSConfig *tls.Config
Resolver resolver.Resolver
Wrappers []Wrapper
Logger logger.Logger
}
// NewOptions returns new Options
func NewOptions(opts ...Option) Options {
options := Options{}
options := Options{
Logger: logger.DefaultLogger,
}
for _, o := range opts {
o(&options)
}
@@ -81,3 +85,9 @@ func Resolver(r resolver.Resolver) Option {
o.Resolver = r
}
}
func Logger(l logger.Logger) Option {
return func(o *Options) {
o.Logger = l
}
}