mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-11-17 10:58:29 -07:00
34 lines
718 B
Go
34 lines
718 B
Go
|
package querylog
|
||
|
|
||
|
import (
|
||
|
"net"
|
||
|
"time"
|
||
|
|
||
|
"github.com/AdguardTeam/AdGuardHome/dnsfilter"
|
||
|
"github.com/miekg/dns"
|
||
|
)
|
||
|
|
||
|
// QueryLog - main interface
|
||
|
type QueryLog interface {
|
||
|
Close()
|
||
|
|
||
|
// Set new configuration at runtime
|
||
|
// Currently only 'Interval' field is supported.
|
||
|
Configure(conf Config)
|
||
|
|
||
|
Add(question *dns.Msg, answer *dns.Msg, result *dnsfilter.Result, elapsed time.Duration, addr net.Addr, upstream string)
|
||
|
GetData() []map[string]interface{}
|
||
|
Clear()
|
||
|
}
|
||
|
|
||
|
// Config - configuration object
|
||
|
type Config struct {
|
||
|
BaseDir string // directory where log file is stored
|
||
|
Interval uint32 // interval to rotate logs (in hours)
|
||
|
}
|
||
|
|
||
|
// New - create instance
|
||
|
func New(conf Config) QueryLog {
|
||
|
return newQueryLog(conf)
|
||
|
}
|