Files
tun2socks/common/log/log.go
2019-08-07 18:59:45 +08:00

64 lines
1.1 KiB
Go

package log
import (
"net"
"strconv"
"github.com/xjasonlyu/tun2socks/common/lsof"
)
var logger Logger
func RegisterLogger(l Logger) {
logger = l
}
func SetLevel(level Level) {
if logger != nil {
logger.SetLevel(level)
}
}
func Debugf(msg string, args ...interface{}) {
if logger != nil {
logger.Debugf(msg, args...)
}
}
func Infof(msg string, args ...interface{}) {
if logger != nil {
logger.Infof(msg, args...)
}
}
func Warnf(msg string, args ...interface{}) {
if logger != nil {
logger.Warnf(msg, args...)
}
}
func Errorf(msg string, args ...interface{}) {
if logger != nil {
logger.Errorf(msg, args...)
}
}
func Fatalf(msg string, args ...interface{}) {
if logger != nil {
logger.Fatalf(msg, args...)
}
}
func Access(process, outbound, network, localAddr, target string) {
var err error
if process == "" {
localHost, localPortStr, _ := net.SplitHostPort(localAddr)
localPortInt, _ := strconv.Atoi(localPortStr)
process, err = lsof.GetCommandNameBySocket(network, localHost, uint16(localPortInt))
if err != nil {
process = "unknown process"
}
}
Infof("[%v] [%v] [%v] %s", outbound, network, process, target)
}