Documentation ¶
Index ¶
- Constants
- func Connect(uri, dbName, user, password string) error
- func CreateMessage(m LogMessage) (id primitive.ObjectID, err error)
- func FilteredMessages(f MessageFilter) (messages []LogMessage, page PageInfo)
- func NewTimeoutContext(parent context.Context) (context.Context, context.CancelFunc)
- func PrettyTime(t time.Time) string
- type LogMessage
- type MessageAuthors
- type MessageFilter
- type MessageFrom
- type MessageTypes
- type PageFilter
- type PageInfo
- type TextFilter
- type TimeFilter
Constants ¶
const (
LogCollectionName = "logs"
)
названия коллекций в монго
Variables ¶
This section is empty.
Functions ¶
func CreateMessage ¶
func CreateMessage(m LogMessage) (id primitive.ObjectID, err error)
CreateMessage создает в базе новую запись сообщения лога
func FilteredMessages ¶
func FilteredMessages(f MessageFilter) (messages []LogMessage, page PageInfo)
FilteredMessages получить данные о сообщениях лога по фильтру
func NewTimeoutContext ¶
NewTimeoutContext создает контекст с таймаутом для базы
func PrettyTime ¶
PrettyTime форматирует время в читабельный для пользователя вид в местной локации
Types ¶
type LogMessage ¶
type LogMessage struct { Time time.Time `json:"time" bson:"time"` // время сообщения From string `json:"from" bson:"from"` // место возникновения сообщения Author string `json:"author" bson:"author"` // автор сообщения (программа) Level string `json:"level" bson:"level"` // уровень сообщения Message string `json:"message" bson:"message"` // сообщение }
LogMessage структура для сообщения лога
type MessageAuthors ¶
MessageAuthors структура для хранения информации о распределнии авторов сообщения
func CalcMA ¶
func CalcMA(f MessageFilter) (ma MessageAuthors)
CalcMA считает распредление по авторам сообщений
type MessageFilter ¶
type MessageFilter struct { Time TimeFilter `json:"time,omitempty"` From TextFilter `json:"from,omitempty"` Author TextFilter `json:"author,omitempty"` AuthorRegexp TextFilter `json:"author_regexp,omitempty"` Level TextFilter `json:"level,omitempty"` Message TextFilter `json:"message,omitempty"` Page PageFilter `json:"page,omitempty"` }
MessageFilter фильтр для получения списка сообщений лога
type MessageFrom ¶ added in v1.1.0
MessageFrom структура для хранения информации о распределнии места возникновения сообщения
func CalcMF ¶ added in v1.1.0
func CalcMF(f MessageFilter) (ma MessageFrom)
CalcMF считает распредление по местам возникновения сообщений
type MessageTypes ¶
type MessageTypes struct { Info int64 `json:"info"` Warning int64 `json:"warning"` Error int64 `json:"error"` Critical int64 `json:"critical"` All int64 `json:"all"` }
MessageTypes структура для хранения информации о распределнии типов сообщения
func CalcMT ¶
func CalcMT(f MessageFilter) (mt MessageTypes)
CalcMT считает распредление по типам сообщений
type PageFilter ¶
type PageFilter struct { MaxCount int64 `json:"count,omitempty"` Offset int64 `json:"offset,omitempty"` Reverse bool `json:"reverse,omitempty"` }
PageFilter базовый фильтр с управлением количества и порядка элементов
func (PageFilter) ToOption ¶
func (pf PageFilter) ToOption(sortFieldName string) *options.FindOptions
ToOption переводит параметры фильтра в опции для запроса монго
type PageInfo ¶
type PageInfo struct { Current int64 `json:"current"` Len int64 `json:"len"` Count int64 `json:"count"` Items int64 `json:"items"` ItemsTotal int64 `json:"items_total"` }
PageInfo информация о странице используется в случае возврата значений постранично Current - текущая страница Len - длина страницы (в элементах на страницу) Count - количество страниц Items - количество элементов на данной странице ItemsTotal - количество элементов всего
type TimeFilter ¶
type TimeFilter struct { Min time.Time `json:"min,omitempty"` Max time.Time `json:"max,omitempty"` }
TimeFilter фильтр для поля времени имеет возможность фильтровать по диапазону
func (TimeFilter) Apply ¶
func (f TimeFilter) Apply(filter bson.M, name string) bool
Apply применяет фильтр filter объект фильтра name название поля в bson
func (TimeFilter) ToBson ¶
func (f TimeFilter) ToBson() bson.M
ToBson конвертирует фильтр в данные для bson mongo перед присвоением полю нужна проверка на nil иначе возможно получить некоректный результат