A simple but powerful golang log Toolkit
go get github.com/phachon/go-logger
go get ./...
Go 1.8
import (
"github.com/phachon/go-logger"
)
func main() {
logger := go_logger.NewLogger()
logger.Info("this is a info log!")
logger.Errorf("this is a error %s log!", "format")
}
import (
"github.com/phachon/go-logger"
)
func main() {
logger := go_logger.NewLogger()
logger.SetAsync()
logger.Info("this is a info log!")
logger.Errorf("this is a error %s log!", "format")
// Flush должен быть вызван до завершения процесса
logger.Flush()
}
import (
"github.com/phachon/go-logger"
)
func main() {
logger := go_logger.NewLogger()
logger.Detach("console")
// Конфигурирование адаптера консоли
consoleConfig := &go_logger.ConsoleConfig{
Color: true, // Отображение текста с цветом
JsonFormat: true, // Форматирование в строку JSON или нет
Format: "", // Если JsonFormat имеет значение false, вывод сообщения журнала в формате строки консоли
}
// Добавление вывода в консоль
logger.Attach("console", go_logger.LOGGER_LEVEL_DEBUG, consoleConfig)
// Конфигурирование адаптера файла
fileConfig := &go_logger.FileConfig {
Filename : "./test.log", // Имя файла вывода логгера, не существует автоматически
// Если вы хотите разделить отдельные логи на файлы, настройте параметры LevelFileName.
LevelFileName : map[int]string {
logger.LoggerLevel("error"): "./error.log", // Логи уровня ошибки записываются в файл error.log.
logger.LoggerLevel("info"): "./info.log", // Логи информационного уровня записываются в файл info.log.
logger.LoggerLevel("debug"): "./debug.log", // Логи отладочного уровня записываются в файл debug.log.
},
MaxSize : 1024 * 1024, // Максимальный размер файла (КБ), по умолчанию 0 — не ограничен
MaxLine : 100000, // Максимальное количество строк в файле, по умолчанию 0 — не ограничено
DateSlice : "d", // Разделение документа по дате, поддержка «Y» (год), «m» (месяц), «d» (день), «H» (час), по умолчанию «нет».
JsonFormat: true, // Запись данных файла в формате JSON
Format: "", // Если JsonFormat имеет значение false, сообщение журнала записывается в формат строки файла
}
// Добавление вывода в файл
logger.Attach("file", go_logger.LOGGER_LEVEL_DEBUG, fileConfig)
logger.Info("this is a info log!")
logger.Errorf("this is a error %s log!", "format")
}
Поле | Псевдоним | Тип | Комментарий | Пример |
---|---|---|---|---|
Timestamp | timestamp | int64 | временная метка unix | 1521791201 |
TimestampFormat | timestamp_format | string | формат временной метки | 2018-3-23 15:46:41 |
Millisecond | millisecond | int64 | миллисекунда | 1524472688352 |
Уровень: level | int | уровень регистратора | 1 |
Строка уровня: level_string | строка | строка уровня регистратора | Error |
Тело: body | строка | тело сообщения регистратора | this is a info log |
Файл: file | строка | файл вызова регистратора | main.go |
Линия: line | int | номер конкретной строки для вызова регистратора |64|
Функция: function| строка | имя функции для вызова регистратора | main.main |
Если вы хотите настроить формат вывода журнала?
Конфигурационный формат:
consoleConfig := &go_logger.ConsoleConfig{
Format: "%millisecond_format% [%level_string%] %body%",
}
fileConfig := &go_logger.FileConfig{
Format: "%millisecond_format% [%level_string%] %body%",
}
Вывод:
2018-03-23 14:55:07.003 [Critical] this is a critical log!
Вы можете настроить формат, нужно только указать Format: "%Псевдоним сообщения регистратора%"
Система: Linux Mint 18.2 Sonya
Процессор(ы): 4
Название модели: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
Память: 4G
BenchmarkLoggerConsoleText 500000 11375 нс/оп 672 Б/оп 15 аллоков/оп
BenchmarkLoggerConsoleText-2 500000 11345 нс/оп 672 Б/оп 15 аллоков/оп
BenchmarkLoggerConsoleText-4 500000 9897 нс/оп 672 Б/оп 15 аллоков/оп
BenchmarkLoggerConsoleAsyncText 500000 9323 нс/оп 672 Б/оп 15 аллоков/оп
BenchmarkLoggerConsoleAsyncText-2 500000 9087 нс/оп 672 Б/оп 15 аллоков/оп
BenchmarkLoggerConsoleAsyncText-4 500000 10685 нс/оп 672 Б/оп 15 аллоков/оп
BenchmarkLoggerConsoleJson 200000 30918 нс/оп 2048 Б/оп 10 аллоков/оп
BenchmarkLoggerConsoleJson-2 200000 33153 нс/оп 2048 Б/оп 10 аллоков/оп
BenchmarkLoggerConsoleJson-4 200000 30918 нс/оп 2048 Б/оп 10 аллоков/оп
BenchmarkLoggerFileText 300000 14083 нс/оп 912 Б/оп 21 аллока/оп
BenchmarkLoggerFileText-2 200000 21159 нс/оп 912 Б/оп 21 аллок/оп
BenchmarkLoggerFileText-4 200000 23776 нс/оп 912 Б/оп 21 аллок/оп
BenchmarkLoggerFileAsyncText 300000 13956 нс/оп 912 Б/оп 21 аллок/оп
BenchmarkLoggerFileAsyncText-2 300000 16124 нс/оп 912 Б/оп 21 аллок/оп
BenchmarkLoggerFileAsyncText-4 300000 18641 нс/оп 912 Б/оп 21 аллок/оп
BenchmarkLoggerFileJson 200000 15472 нс/оп 1968 Б/оп 15 аллоков/оп
BenchmarkLoggerFileJson-2 200000 22523 нс/оп 1968 Б/оп 15 аллоков/оп
BenchmarkLoggerFileJson-4 200000 25596 нс/оп 1968 Б/оп 15 аллоков/оп
beego/logs : github.com/astaxie/beego/logs
Приглашаем вас оставлять комментарии и код, контактная информация phachon@163.com
MIT
Создано Phachon@163.com
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )