You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.1 KiB

// ------------------------------------------------------------------------
// Project active2
// Active Thing (activething.com) git.activething.com/go
//
// File name active.go
// Created by DEV
// Modified 23/04/2024
//
// Copyright 2024 activething.com
// ------------------------------------------------------------------------
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ------------------------------------------------------------------------
package alogs
import (
"atypes/astrings"
"bins/tokens"
"errs"
"mems"
"syncs"
"syncs/pools"
"time"
)
const (
errFieldCoreName string = "core-name"
errScopeCoreName string = "scope-name"
entryFieldCoreName string = "logger-core"
LevelNameData string = "DATA"
LevelNameDebug string = "DEBUG"
LevelNameInfo string = "INFO"
LevelNameWarn string = "WARN"
LevelNameError string = "ERROR"
LevelNameFatal string = "FATAL"
levelNameSep string = "|"
filterLevelName string = "level"
filterScopeName string = "scope"
)
var (
G = struct {
ErrInvalidLevel errs.ErrCode
ErrDuplicatedScope errs.ErrCode
ErrDuplicatedLogger errs.ErrCode
ErrInvalidScope errs.ErrCode
ErrInvalidScopeMode errs.ErrCode
ErrNotExistsLogger errs.ErrCode
ErrLoggerStarted errs.ErrCode
ErrLoggerNotStarted errs.ErrCode
ScopeSep byte
ScopeNameTransforms astrings.Transformers
FmtMsgLogLogErr string
FmtMsgLogStartErr string
FmtMsgLogStopErr string
FmtMsgLogFlushErr string
}{
ErrInvalidLevel : errs.ErrCode("invalid-level"),
ErrDuplicatedScope : errs.ErrCode("duplicated-scope" ),
ErrDuplicatedLogger : errs.ErrCode("duplicated-nameLevel"),
ErrInvalidScope : errs.ErrCode("invalid-scope"),
ErrInvalidScopeMode : errs.ErrCode("invalid-scope-mode"),
ErrNotExistsLogger : errs.ErrCode("not-exists-nameLevel"),
ErrLoggerStarted : errs.ErrCode("logger-started"),
ErrLoggerNotStarted : errs.ErrCode("logger-not-started"),
ScopeSep : '.',
ScopeNameTransforms : astrings.MakeTransformers("lower"),
FmtMsgLogLogErr : "Error logging logger %s",
FmtMsgLogStartErr : "Error starting logger %s",
FmtMsgLogStopErr : "Error stopping logger %s",
FmtMsgLogFlushErr : "Error flushing logger %s",
}
g = struct {
idGen syncs.AUInt64
entryPool pools.GPool[Entry]
bufferPool mems.Pool
tokenizer tokens.ATokenizer
scopeSepStr string
}{
idGen : *syncs.NewAUInt64(uint64(time.Now().Unix())),
bufferPool: *mems.NewPool(),
entryPool : *pools.NewGPool[Entry](
pools.WithNew(newEntry),
),
tokenizer : *tokens.NewATokenizer(func (c *tokens.ATokenizer) {
c.TokenSep = '.'
}),
scopeSepStr : ".",
}
)

Powered by TurnKey Linux.