log
Стандартный пакет log в Go реализует простое ведение журналов.
go
func main() {
log.Println("日志")
log.Panicln("panic 日志")
log.Fatalln("错误日志")
}Fatal вызывает os.Exit(1) после записи сообщения журнала, panic выбрасывает panic.
Префикс
go
func (l *Logger) Prefix() string // Получить префикс
func (l *Logger) SetPrefix(prefix string) // Установить префиксПример:
go
func main() {
log.SetPrefix("[main]")
log.Println("日志")
log.Panicln("panic 日志")
}Flag
Методы:
go
func (l *Logger) Flags() int // Получить
func (l *Logger) SetFlags(flag int) // УстановитьКонстанты:
go
const (
Ldate = 1 << iota // Дата
Ltime // Время
Lmicroseconds // Микросекунды
Llongfile // Полное имя файла
Lshortfile // Короткое имя файла
LUTC // Часовой пояс
Lmsgprefix // Префикс
LstdFlags = Ldate | Ltime // Значение по умолчанию
)Пример:
go
func main() {
log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmsgprefix | log.Ldate | log.Ltime)
log.Println("日志")
log.Panicln("panic 日志")
}Конечно, можно использовать log.SetOutput(w io.Writer) для установки пути вывода журнала, также можно создать собственный экземпляр через метод New.
go
func New(out io.Writer, prefix string, flag int) *LoggerВ целом, пакет log стандартной библиотеки предоставляет недостаточно полный функционал, поэтому обычно используются более полные сторонние пакеты ведения журналов, например zap и другие.
