Skip to content

requiemofthesouls/logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wrapper logger

Описание

Данный модуль предназначается для логирования.
Модуль является оберткой над uber-go/zap.

  • trimmer - функционал для удаления полей, которые задаются при использование данного функционала, которые не должны отображаться в логах.
  • shortener - функционал для логирования определенных полей, которые задаются при использование данной функции.

Пример использования

Wrapper:

  • Использование через конструктор.
package main

import (
	"log"

	"go.uber.org/zap"
	"github.com/requiemofthesouls/logger"
)

func main() {
	var (
		l logger.Wrapper
		err     error
	)
	if l, err = logger.New(logger.Config{
		Address:     "localhost:65000",
		Level:       "info",
		Encoding:    "console",
		Caller:      true,
		Stacktrace:  "error",
		Development: false,
	}, []logger.Field{
		logger.String("service", "example"),
	}); err != nil {
		log.Fatal(err)
	}
	
	l.Info("Starting service", logger.String("address", "localhost:80"))
}
  • Использование через definitions.
package main

import (
	"log"

	"github.com/requiemofthesouls/container"
	"go.uber.org/zap"
	"github.com/requiemofthesouls/logger"
)

func main() {
	var l logger.Wrapper
	if err := container.Container.Fill(loggerCont.DIWrapper, &l); err != nil {
		log.Fatal(err)
	}

	l.Info("Starting service", logger.String("address", "localhost:80"))
}

Trimmer:

  • Example.
package main

import (
	"log"

	"github.com/requiemofthesouls/logger/trimmer"
)

func main() {
	var s = trimmer.New(map[string][]string{
		"example_handler_name": {
			"example_field_name_1",
			"example_field_name_2",
		},
	})
	log.Println(string(s.Trim("example_handler_name", []byte("{\"example_field_name_1\":1, \"example_field_name_3\":2}"))))
}
  • Output.
{
   "example_field_name_1":"TRIMMED_CONTENT",
   "example_field_name_3":2
}

Shortener:

  • Example.
package main

import (
	"log"

	"github.com/requiemofthesouls/logger/shortener"
)

func main() {
	var s = shortener.New(map[string][]string{
		"example_handler_name": {
			"example_field_name_1",
			"example_field_name_2",
		},
	})
	log.Println(string(s.Shorten("example_handler_name", []byte("{\"example_field_name_1\":1, \"example_field_name_3\":2}"))))
}
  • Output.
{
   "example_field_name_1":1
}

Пример конфигурации

logger:
  level: info             # Уровень логера.
  encoding: json          # Формат логов.
  caller: true            # Аннотирования каждого сообщения именем файла.
  stacktrace: error       # Трассировка стека для заданного уровня.
  address: localhost:5110 # Адресс для сохранения логов в logstash по udp. Указывать не обязательно. 
  development: true       # Перевод логера в режим разработки. Дополнительно регистрирует panics.

Зависимости от модулей

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages