mirror of
https://github.com/taigrr/log-socket
synced 2026-03-20 19:32:25 -07:00
enable namespaced logging
This commit is contained in:
17
ws/namespaces.go
Normal file
17
ws/namespaces.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package ws
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
logger "github.com/taigrr/log-socket/v2/log"
|
||||
)
|
||||
|
||||
// NamespacesHandler returns a JSON list of all namespaces that have been used
|
||||
func NamespacesHandler(w http.ResponseWriter, r *http.Request) {
|
||||
namespaces := logger.GetNamespaces()
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(map[string]interface{}{
|
||||
"namespaces": namespaces,
|
||||
})
|
||||
}
|
||||
13
ws/server.go
13
ws/server.go
@@ -3,9 +3,10 @@ package ws
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
logger "github.com/taigrr/log-socket/log"
|
||||
logger "github.com/taigrr/log-socket/v2/log"
|
||||
)
|
||||
|
||||
var upgrader = websocket.Upgrader{} // use default options
|
||||
@@ -15,13 +16,21 @@ func SetUpgrader(u websocket.Upgrader) {
|
||||
}
|
||||
|
||||
func LogSocketHandler(w http.ResponseWriter, r *http.Request) {
|
||||
// Get namespaces from query parameter, comma-separated
|
||||
// Empty or missing means all namespaces
|
||||
namespacesParam := r.URL.Query().Get("namespaces")
|
||||
var namespaces []string
|
||||
if namespacesParam != "" {
|
||||
namespaces = strings.Split(namespacesParam, ",")
|
||||
}
|
||||
|
||||
c, err := upgrader.Upgrade(w, r, nil)
|
||||
if err != nil {
|
||||
logger.Error("upgrade:", err)
|
||||
return
|
||||
}
|
||||
defer c.Close()
|
||||
lc := logger.CreateClient()
|
||||
lc := logger.CreateClient(namespaces...)
|
||||
defer lc.Destroy()
|
||||
lc.SetLogLevel(logger.LTrace)
|
||||
logger.Info("Websocket client attached.")
|
||||
|
||||
Reference in New Issue
Block a user