// package kernel_log -- логгер ядра package kernel_log import ( "fmt" "sync" . "wartank/kernel/kernel_types" ) var блок sync.Mutex type Логгер struct { префикс string } func НовЛоггер(префикс string) *Логгер { сам := &Логгер{ префикс: префикс, } _ = ИЯдроЛог(сам) return сам } // Паника -- проверяет на совпадение условия func (сам *Логгер) Паника(условие bool, формат string, аргументы ...interface{}) { блок.Lock() defer блок.Unlock() if условие { panic(fmt.Sprintf("ПАНИК "+сам.префикс+"."+формат, аргументы...)) } } // Ошибка -- выводит в консоль ошибку func (сам *Логгер) Ошибка(формат string, аргументы ...interface{}) { блок.Lock() defer блок.Unlock() fmt.Printf("ОШИБК "+сам.префикс+"."+формат, аргументы...) } // Отладка -- выводит в консоль отладку func (сам *Логгер) Отладка(формат string, аргументы ...interface{}) { блок.Lock() defer блок.Unlock() fmt.Printf("ОТЛАД "+сам.префикс+"."+формат, аргументы...) } // Инфо -- выводит в консоль информацию func (сам *Логгер) Инфо(формат string, аргументы ...interface{}) { блок.Lock() defer блок.Unlock() fmt.Printf("ИНФО "+сам.префикс+"."+формат, аргументы...) } // Внимание -- выводит в консоль предупреждение func (сам *Логгер) Внимание(формат string, аргументы ...interface{}) { блок.Lock() defer блок.Unlock() fmt.Printf("ВНИМА "+сам.префикс+"."+формат, аргументы...) }