feat(logger): configure log file path thorugh global options

Former-commit-id: 577d89f4fb
This commit is contained in:
Varun Narravula
2025-12-31 15:44:19 -08:00
committed by Owen Schwartz
parent 7b7eae617a
commit c565a46a6f
2 changed files with 14 additions and 4 deletions

View File

@@ -100,6 +100,17 @@ func Init(ctx context.Context, config GlobalConfig) {
logger.GetLogger().SetLevel(util.ParseLogLevel(config.LogLevel)) logger.GetLogger().SetLevel(util.ParseLogLevel(config.LogLevel))
if config.LogFilePath != "" {
logFile, err := os.OpenFile(config.LogFilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0o644)
if err != nil {
logger.Fatal("Failed to open log file: %v", err)
}
// TODO: figure out how to close file, if set
logger.SetOutput(logFile)
return
}
logger.Debug("Checking permissions for native interface") logger.Debug("Checking permissions for native interface")
err := permissions.CheckNativeInterfacePermissions() err := permissions.CheckNativeInterfacePermissions()
if err != nil { if err != nil {
@@ -306,7 +317,7 @@ func StartTunnel(config TunnelConfig) {
if config.FileDescriptorTun != 0 { if config.FileDescriptorTun != 0 {
return olmDevice.CreateTUNFromFD(config.FileDescriptorTun, config.MTU) return olmDevice.CreateTUNFromFD(config.FileDescriptorTun, config.MTU)
} }
var ifName = interfaceName ifName := interfaceName
if runtime.GOOS == "darwin" { // this is if we dont pass a fd if runtime.GOOS == "darwin" { // this is if we dont pass a fd
ifName, err = network.FindUnusedUTUN() ifName, err = network.FindUnusedUTUN()
if err != nil { if err != nil {
@@ -315,7 +326,6 @@ func StartTunnel(config TunnelConfig) {
} }
return tun.CreateTUN(ifName, config.MTU) return tun.CreateTUN(ifName, config.MTU)
}() }()
if err != nil { if err != nil {
logger.Error("Failed to create TUN device: %v", err) logger.Error("Failed to create TUN device: %v", err)
return return
@@ -361,7 +371,6 @@ func StartTunnel(config TunnelConfig) {
for { for {
conn, err := uapiListener.Accept() conn, err := uapiListener.Accept()
if err != nil { if err != nil {
return return
} }
go dev.IpcHandle(conn) go dev.IpcHandle(conn)

View File

@@ -14,7 +14,8 @@ type WgData struct {
type GlobalConfig struct { type GlobalConfig struct {
// Logging // Logging
LogLevel string LogLevel string
LogFilePath string
// HTTP server // HTTP server
EnableAPI bool EnableAPI bool