feat: replace logrus logger with logf

logf is a minimal logger with no dependencies. this commit should
bring down the binary size.
This commit is contained in:
Karan Sharma 2022-07-01 07:29:14 +05:30
parent 218eb0233a
commit 0f8084b13c
14 changed files with 102 additions and 114 deletions

View file

@ -5,7 +5,7 @@ import (
"time"
"github.com/miekg/dns"
"github.com/sirupsen/logrus"
"github.com/mr-karan/logf"
)
// ClassicResolver represents the config options for setting up a Resolver.
@ -66,7 +66,7 @@ func (r *ClassicResolver) Lookup(question dns.Question) (Response, error) {
messages = prepareMessages(question, r.resolverOptions.Ndots, r.resolverOptions.SearchList)
)
for _, msg := range messages {
r.resolverOptions.Logger.WithFields(logrus.Fields{
r.resolverOptions.Logger.WithFields(logf.Fields{
"domain": msg.Question[0].Name,
"ndots": r.resolverOptions.Ndots,
"nameserver": r.server,
@ -93,7 +93,7 @@ func (r *ClassicResolver) Lookup(question dns.Question) (Response, error) {
default:
r.client.Net = "tcp"
}
r.resolverOptions.Logger.WithField("protocol", r.client.Net).Debug("Response truncated; retrying now")
r.resolverOptions.Logger.WithFields(logf.Fields{"protocol": r.client.Net}).Debug("Response truncated; retrying now")
return r.Lookup(question)
}

View file

@ -5,7 +5,7 @@ import (
"github.com/ameshkov/dnscrypt/v2"
"github.com/miekg/dns"
"github.com/sirupsen/logrus"
"github.com/mr-karan/logf"
)
// DNSCryptResolver represents the config options for setting up a Resolver.
@ -49,7 +49,7 @@ func (r *DNSCryptResolver) Lookup(question dns.Question) (Response, error) {
messages = prepareMessages(question, r.resolverOptions.Ndots, r.resolverOptions.SearchList)
)
for _, msg := range messages {
r.resolverOptions.Logger.WithFields(logrus.Fields{
r.resolverOptions.Logger.WithFields(logf.Fields{
"domain": msg.Question[0].Name,
"ndots": r.resolverOptions.Ndots,
"nameserver": r.server,

View file

@ -10,7 +10,7 @@ import (
"time"
"github.com/miekg/dns"
"github.com/sirupsen/logrus"
"github.com/mr-karan/logf"
)
// DOHResolver represents the config options for setting up a DOH based resolver.
@ -49,7 +49,7 @@ func (r *DOHResolver) Lookup(question dns.Question) (Response, error) {
)
for _, msg := range messages {
r.resolverOptions.Logger.WithFields(logrus.Fields{
r.resolverOptions.Logger.WithFields(logf.Fields{
"domain": msg.Question[0].Name,
"ndots": r.resolverOptions.Ndots,
"nameserver": r.server,
@ -80,15 +80,15 @@ func (r *DOHResolver) Lookup(question dns.Question) (Response, error) {
return rsp, fmt.Errorf("error from nameserver %s", resp.Status)
}
rtt := time.Since(now)
// if debug, extract the response headers
if r.resolverOptions.Logger.IsLevelEnabled(logrus.DebugLevel) {
for header, value := range resp.Header {
r.resolverOptions.Logger.WithFields(logrus.Fields{
header: value,
}).Debug("DOH response header")
}
// Log the response headers in debug mode.
for header, value := range resp.Header {
r.resolverOptions.Logger.WithFields(logf.Fields{
header: value,
}).Debug("DOH response header")
}
// extract the binary response in DNS Message.
// Extract the binary response in DNS Message.
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return rsp, err
@ -98,7 +98,7 @@ func (r *DOHResolver) Lookup(question dns.Question) (Response, error) {
if err != nil {
return rsp, err
}
// pack questions in output.
// Pack questions in output.
for _, q := range msg.Question {
ques := Question{
Name: q.Name,
@ -107,13 +107,13 @@ func (r *DOHResolver) Lookup(question dns.Question) (Response, error) {
}
rsp.Questions = append(rsp.Questions, ques)
}
// get the authorities and answers.
// Get the authorities and answers.
output := parseMessage(&msg, rtt, r.server)
rsp.Authorities = output.Authorities
rsp.Answers = output.Answers
if len(output.Answers) > 0 {
// stop iterating the searchlist.
// Stop iterating the searchlist.
break
}
}

View file

@ -11,7 +11,7 @@ import (
"github.com/lucas-clemente/quic-go"
"github.com/miekg/dns"
"github.com/sirupsen/logrus"
"github.com/mr-karan/logf"
)
// DOQResolver represents the config options for setting up a DOQ based resolver.
@ -47,7 +47,7 @@ func (r *DOQResolver) Lookup(question dns.Question) (Response, error) {
defer session.CloseWithError(quic.ApplicationErrorCode(quic.NoError), "")
for _, msg := range messages {
r.resolverOptions.Logger.WithFields(logrus.Fields{
r.resolverOptions.Logger.WithFields(logf.Fields{
"domain": msg.Question[0].Name,
"ndots": r.resolverOptions.Ndots,
"nameserver": r.server,

View file

@ -5,13 +5,13 @@ import (
"github.com/miekg/dns"
"github.com/mr-karan/doggo/pkg/models"
"github.com/sirupsen/logrus"
"github.com/mr-karan/logf"
)
// Options represent a set of common options
// to configure a Resolver.
type Options struct {
Logger *logrus.Logger
Logger *logf.Logger
Nameservers []models.Nameserver
UseIPv4 bool

View file

@ -1,13 +1,12 @@
package utils
import "github.com/sirupsen/logrus"
import (
"github.com/mr-karan/logf"
)
// InitLogger initializes logger.
func InitLogger() *logrus.Logger {
logger := logrus.New()
logger.SetFormatter(&logrus.TextFormatter{
FullTimestamp: true,
DisableLevelTruncation: true,
})
func InitLogger() *logf.Logger {
logger := logf.New()
logger.SetColorOutput(true)
return logger
}