Categorygithub.com/alex60217101990/zap_custom_logger
modulepackage
0.0.0-20200201140154-4d268168d7c2
Repository: https://github.com/alex60217101990/zap_custom_logger.git
Documentation: pkg.go.dev

# README

ZAP custom logger

Installation

Run command on you [$GOPATH/src] path:

go get -u github.com/alex60217101990/zap_custom_logger

If you use: bash go mod the package will load automatically with other dependencies.

Usage

The package provides two basic models of the logbook, according to which indexes are created in Elasticsearch:

type EndpointLog struct {
	Level            string        `json:"level"`
	Msg              *string       `json:"msg,omitempty"`
	Timestamp        time.Time     `json:"timestamp,omitempty"`
	Error            interface{}   `json:"error,omitempty"`
	ServiceName      string        `json:"service_name"`
	InstancePublicIP string        `json:"instance_public_ip"`
	Version          string        `json:"version"`
	Namespace        *string       `json:"namespace"`
	StackTrace       *string       `json:"stacktrace,omitempty"`
	Url              *string       `json:"url"`
	TraceID          interface{}   `json:"trace_id"`
	RequestBody      interface{}   `json:"request_body"`
	ResponseBody     interface{}   `json:"response_body"`
	Duration         time.Duration `json:"duration"`
}

and

type ServiceLog struct {
	Level            string      `json:"level"`
	Msg              *string     `json:"msg,omitempty"`
	Timestamp        time.Time   `json:"timestamp,omitempty"`
	Error            interface{} `json:"error,omitempty"`
	ServiceName      string      `json:"service_name"`
	InstancePublicIP string      `json:"instance_public_ip"`
	StackTrace       *string     `json:"stacktrace,omitempty"`
	Version          string      `json:"version"`
	Namespace        *string     `json:"namespace"`
}

An example of creating a logger with some configuration parameters (for correct closure, it is desirable to convey a global context):

	ctx, cancel := context.WithCancel(context.Background())
	log := zap_custom_logger.NewZapLogger(
		zap_custom_logger.SetConfigs(&zap_custom_logger.Configs{
			App: zap_custom_logger.App{
                PublicIP: "<you local or global IP>",
                Version: "<some version for example: 0.0.1>",
                Namespace: "<some namespac: default - "default">",
                ServiceName: "<some service name>",
			},
			Storage: zap_custom_logger.Storage{
				Hosts:         []string{"<some host>"},
				LoggerStorage: zap_custom_logger.Elastic,
			},
			Encoder: zap_custom_logger.Console,
		}),
		zap_custom_logger.SetContext(context.Background()),
	)
	log.Connect()

Correct close forexample:

    defer func() {
		log.Close()
		cancel()
	}()

License

MIT

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Interfaces

No description provided by the author
No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author
No description provided by the author