logger

package module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2025 License: MIT Imports: 8 Imported by: 0

README

Golang модуль для логирования с возможностью отправлять логи на удаленный сервер и адаптированный для использования с Temporal


Логирование производится локально, а также на удаленном сервере. Данные передаются по UDP.

Для корректной работы в корне проекта должен присутствовать .env файл со следующими константами:

SERVICE_NAME=<название сервиса>
LOGGER_IP=<IP удаленного сервиса для логирования> //опционально для отправки логов на удаленный сервер
LOGGER_PORT=<Порт удаленного сервиса для логирования> //опционально для отправки логов на удаленный сервер
LOG_DIR=<Папка для хранения логов> //опционально, по умолчанию папка "logs"
LOCATION=Europe/Moscow //опционально, по умолчанию Europe/Moscow

Для установки модуля необходимо в Go проекте выполнить команду:

go get -u git.ctrl.lc/leasing-crm-open/go-log-pkg


Для использования в проекте:

Для логирования ошибки:

logger.RLogger.Error("Getting debitors from excel.", "module", "Activity", "Error", err.Error())

Доступные методы:

.Debug()
.Info()
.Warn()
.Error()

Данные из аргументов - указание "module" необходимы для отметки модуля в логах, остальные пары ключ, значение попадают в текст лога as is.


Для использования отдельного инстанса в сервисах:

l := logger.NewRemoteLogger("INFO")

l.Error("Some error text", "module", "main", "Error", err.Error())
l.Warn("Some warning text", "module", "main"

Для использования с Temporal

Для инициализации логера, необходимо добавить следующий код:

func StartWorkflow() {
	c, err := client.Dial(client.Options{
		Logger: logger.NewRemoteLogger("DEBUG"),
	})

Для использования в workflow:

    logger := workflow.GetLogger(ctx)
    logger.Debug("Compressed Payloads workflow started!!!!", "module", "Debitor")

Для использования в actions:

    logger := activity.GetLogger(ctx)
	logger.Info("Getting debitors from excel.", "module", "Activity")

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FullLogLevels = []string{"DEBUG", "INFO", "WARN", "ERROR"}

Functions

This section is empty.

Types

type LogPayload

type LogPayload struct {
	Level   string `json:"level"`
	Service string `json:"service"`
	Module  string `json:"module"`
	Message string `json:"message"`
	Time    string `json:"time"`
}

type RemoteLogger

type RemoteLogger struct {
	// contains filtered or unexported fields
}
var RLogger *RemoteLogger = NewRemoteLogger()

func NewRemoteLogger

func NewRemoteLogger(params ...string) *RemoteLogger

func (*RemoteLogger) ChangeLevel

func (r *RemoteLogger) ChangeLevel(params ...string)

func (*RemoteLogger) Debug

func (r *RemoteLogger) Debug(msg string, keyvals ...interface{})

func (*RemoteLogger) Error

func (r *RemoteLogger) Error(msg string, keyvals ...interface{})

func (*RemoteLogger) Info

func (r *RemoteLogger) Info(msg string, keyvals ...interface{})

func (*RemoteLogger) Warn

func (r *RemoteLogger) Warn(msg string, keyvals ...interface{})

func (*RemoteLogger) With

func (r *RemoteLogger) With(keyvals []interface{})

func (*RemoteLogger) WithCallerSkip

func (r *RemoteLogger) WithCallerSkip(keyvals []interface{})

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL