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.

91 lines
1.8 KiB

// ------------------------------------------------------------------------
// Project active2
// Active Thing (activething.com) git.activething.com/go
//
// File name hecate.go
// Created by DEV
// Modified 25/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 logs
import (
"errs"
"syncs/queue"
)
type (
ALogger struct {
loggerLevel
Aggregators
Filters
scopes Scopes
queue queue.GQueue[*Entry]
state State
count int
logErrors bool
errors errs.ErrorList
}
ManagerFnc func(manager *ALogger)
)
func NewALogger(name string, level Level, options ...ManagerFnc) *ALogger {
m := &ALogger{
loggerLevel : *newLoggerLevel(name,level),
Filters : *NewFilters(),
state : StateCreated,
logErrors : true,
}
m.logFn = m.log
for o := range options {
o(m)
}
return m
}
func (l *ALogger) Start (all bool) error {
l.mux.Lock()
if l.state == StateStarted {
l.mux.Unlock()
return nil
}
l.errors = l.errors[:0]
l.state = StateStarted
if !all {
l.mux.Unlock()
return nil
}
for _,cl := range l.cores {
}
}

Powered by TurnKey Linux.