mirror of
				https://git.zx2c4.com/wireguard-go
				synced 2025-10-31 03:46:20 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			967 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			967 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0
 | |
|  *
 | |
|  * Copyright (C) 2017-2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
 | |
|  */
 | |
| 
 | |
| package main
 | |
| 
 | |
| import (
 | |
| 	"io"
 | |
| 	"io/ioutil"
 | |
| 	"log"
 | |
| 	"os"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	LogLevelError = iota
 | |
| 	LogLevelInfo
 | |
| 	LogLevelDebug
 | |
| )
 | |
| 
 | |
| type Logger struct {
 | |
| 	Debug *log.Logger
 | |
| 	Info  *log.Logger
 | |
| 	Error *log.Logger
 | |
| }
 | |
| 
 | |
| func NewLogger(level int, prepend string) *Logger {
 | |
| 	output := os.Stdout
 | |
| 	logger := new(Logger)
 | |
| 
 | |
| 	logErr, logInfo, logDebug := func() (io.Writer, io.Writer, io.Writer) {
 | |
| 		if level >= LogLevelDebug {
 | |
| 			return output, output, output
 | |
| 		}
 | |
| 		if level >= LogLevelInfo {
 | |
| 			return output, output, ioutil.Discard
 | |
| 		}
 | |
| 		return output, ioutil.Discard, ioutil.Discard
 | |
| 	}()
 | |
| 
 | |
| 	logger.Debug = log.New(logDebug,
 | |
| 		"DEBUG: "+prepend,
 | |
| 		log.Ldate|log.Ltime|log.Lshortfile,
 | |
| 	)
 | |
| 
 | |
| 	logger.Info = log.New(logInfo,
 | |
| 		"INFO: "+prepend,
 | |
| 		log.Ldate|log.Ltime,
 | |
| 	)
 | |
| 	logger.Error = log.New(logErr,
 | |
| 		"ERROR: "+prepend,
 | |
| 		log.Ldate|log.Ltime,
 | |
| 	)
 | |
| 	return logger
 | |
| }
 | 
