// ------------------------------------------------------------------------ // 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 : ".", } )