fix: added better debug logging for core.Exec (fixes #1125)

This commit is contained in:
Simone Margaritelli 2024-09-13 12:27:22 +02:00
parent 97b4dcb46e
commit 5bc9dd9259
3 changed files with 26 additions and 8 deletions

View file

@ -4,6 +4,7 @@ import (
"os/exec"
"sort"
"github.com/bettercap/bettercap/v2/log"
"github.com/evilsocket/islazy/str"
)
@ -36,10 +37,13 @@ func HasBinary(executable string) bool {
func Exec(executable string, args []string) (string, error) {
path, err := exec.LookPath(executable)
if err != nil {
log.Warning("executable %s not found in $PATH", executable)
return "", err
}
raw, err := exec.Command(path, args...).CombinedOutput()
log.Debug("exec=%s args=%v ret_err=%v ret_out=%s", path, args, err, string(raw))
if err != nil {
return str.Trim(string(raw)), err
} else {

View file

@ -1,27 +1,39 @@
package log
import (
"github.com/bettercap/bettercap/v2/session"
ll "github.com/evilsocket/islazy/log"
"github.com/evilsocket/islazy/log"
)
type logFunction func(level log.Verbosity, format string, args ...interface{})
var Logger = (logFunction)(nil)
func Debug(format string, args ...interface{}) {
session.I.Events.Log(ll.DEBUG, format, args...)
if Logger != nil {
Logger(log.DEBUG, format, args...)
}
}
func Info(format string, args ...interface{}) {
session.I.Events.Log(ll.INFO, format, args...)
if Logger != nil {
Logger(log.INFO, format, args...)
}
}
func Warning(format string, args ...interface{}) {
session.I.Events.Log(ll.WARNING, format, args...)
if Logger != nil {
Logger(log.WARNING, format, args...)
}
}
func Error(format string, args ...interface{}) {
session.I.Events.Log(ll.ERROR, format, args...)
if Logger != nil {
Logger(log.ERROR, format, args...)
}
}
func Fatal(format string, args ...interface{}) {
session.I.Events.Log(ll.FATAL, format, args...)
if Logger != nil {
Logger(log.FATAL, format, args...)
}
}

View file

@ -17,6 +17,7 @@ import (
"github.com/bettercap/bettercap/v2/caplets"
"github.com/bettercap/bettercap/v2/core"
"github.com/bettercap/bettercap/v2/firewall"
my_log "github.com/bettercap/bettercap/v2/log"
"github.com/bettercap/bettercap/v2/network"
"github.com/bettercap/bettercap/v2/packets"
@ -150,6 +151,7 @@ func New() (*Session, error) {
if I == nil {
I = s
my_log.Logger = s.Events.Log
}
return s, nil