summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flags.go2
-rw-r--r--reallog.go30
2 files changed, 28 insertions, 4 deletions
diff --git a/flags.go b/flags.go
index 927ccb5..f6ae676 100644
--- a/flags.go
+++ b/flags.go
@@ -27,6 +27,7 @@ package log
import (
"net/http"
+ "os"
"sync"
)
@@ -56,6 +57,7 @@ type LogFlag struct {
var flags []*LogFlag
var daemonMode bool
+var captureMode *os.File
var httpMode http.ResponseWriter
func init() {
diff --git a/reallog.go b/reallog.go
index 347db85..3c565a3 100644
--- a/reallog.go
+++ b/reallog.go
@@ -7,12 +7,17 @@ import (
"fmt"
reallog "log"
"net/http"
+ "os"
)
func DaemonMode(b bool) {
daemonMode = b
}
+func CaptureMode(f *os.File) {
+ captureMode = f
+}
+
func HttpMode(w http.ResponseWriter) {
httpMode = w
}
@@ -27,9 +32,18 @@ func DaemonShow() {
func realPrintln(a ...any) {
if daemonMode {
- fmt.Println(a...)
+ if captureMode == nil {
+ fmt.Println(a...)
+ } else {
+ fmt.Fprintln(captureMode, a...)
+ }
} else {
- reallog.Println(a...)
+ if captureMode == nil {
+ fmt.Println(a...)
+ } else {
+ // TODO: add datestamp
+ fmt.Fprintln(captureMode, a...)
+ }
}
if httpMode != nil {
s := fmt.Sprint(a...)
@@ -39,9 +53,17 @@ func realPrintln(a ...any) {
func realPrintf(s string, a ...any) {
if daemonMode {
- fmt.Printf(s, a...)
+ if captureMode == nil {
+ fmt.Printf(s, a...)
+ } else {
+ fmt.Fprintf(captureMode, s, a...)
+ }
} else {
- reallog.Printf(s, a...)
+ if captureMode == nil {
+ reallog.Printf(s, a...)
+ } else {
+ fmt.Fprintf(captureMode, s, a...)
+ }
}
if httpMode != nil {
fmt.Fprintln(httpMode, fmt.Sprintf(s, a...))