commit fb13cf124149ebb94f400f718c9ae22dda341bdd Author: Yawning Angel yawning@torproject.org Date: Wed Sep 3 11:55:16 2014 +0000
Add a prolog/epilog to the logging that always gets logged.
The prolog prints the version as soon as logging is enabled, but before the pluggable transport configuration is done. The epilog is printed as the code returns from main, as long as either client or server pt configuration succeded. --- obfs4proxy/log.go | 7 +++++++ obfs4proxy/obfs4proxy.go | 14 ++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/obfs4proxy/log.go b/obfs4proxy/log.go index 22f345c..5440596 100644 --- a/obfs4proxy/log.go +++ b/obfs4proxy/log.go @@ -41,6 +41,13 @@ const (
var logLevel = levelInfo
+func noticef(format string, a ...interface{}) { + if enableLogging { + msg := fmt.Sprintf(format, a...) + log.Print("[NOTICE]: " + msg) + } +} + func errorf(format string, a ...interface{}) { if enableLogging && logLevel >= levelError { msg := fmt.Sprintf(format, a...) diff --git a/obfs4proxy/obfs4proxy.go b/obfs4proxy/obfs4proxy.go index 7e8aad0..cf8043a 100644 --- a/obfs4proxy/obfs4proxy.go +++ b/obfs4proxy/obfs4proxy.go @@ -383,9 +383,8 @@ func ptInitializeLogging(enable bool) error { return nil }
-func version() { - fmt.Printf("obfs4proxy-%s\n", obfs4proxyVersion) - os.Exit(0) +func getVersion() string { + return fmt.Sprintf("obfs4proxy-%s", obfs4proxyVersion) }
func main() { @@ -398,7 +397,8 @@ func main() { flag.Parse()
if *showVer { - version() + fmt.Printf("%s\n", getVersion()) + os.Exit(0) } if err := setLogLevel(*logLevelStr); err != nil { log.Fatalf("[ERROR]: failed to set log level: %s", err) @@ -418,6 +418,8 @@ func main() { } if err = ptInitializeLogging(enableLogging); err != nil { log.Fatalf("[ERROR]: %s - failed to initialize logging", execName) + } else { + noticef("%s - launched", getVersion()) } if isClient { infof("%s - initializing client transport listeners", execName) @@ -432,9 +434,9 @@ func main() { os.Exit(-1) }
- infof("%s - launched and accepting connections", execName) + infof("%s - accepting connections", execName) defer func() { - infof("%s - terminated", execName) + noticef("%s - terminated", execName) }()
// At this point, the pt config protocol is finished, and incoming
tor-commits@lists.torproject.org