feat(frpLogger): add real-time instance log streaming functionality
Implement cross-platform log streaming for frpc instances with support for Windows, systemd, and init.d systems. Includes WebSocket API endpoint for real-time log streaming, token validation, and instance ownership checks. Update README and API documentation to reflect new functionality. The implementation handles: - Platform-specific log collection (Windows Event Log, journalctl, log files) - WebSocket-based real-time streaming - Token validation and instance access control - Log level parsing and formatting - Historical log retrieval since service start
This commit is contained in:
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"super-frpc/frpLogger"
|
||||
"super-frpc/postLog"
|
||||
)
|
||||
|
||||
@@ -10,8 +11,8 @@ func setupRoutes() {
|
||||
postLog.Info("Setting up routes...")
|
||||
http.HandleFunc("/system/getStatus", GetStatusHandler)
|
||||
http.HandleFunc("/system/getSoftwareInfo", GetSoftwareInfoHandler)
|
||||
logHandler := postLog.NewLogSocketHandler(postLog.GetLogBroadcaster())
|
||||
http.HandleFunc("/system/getLogs", logHandler.Handle)
|
||||
systemLogHandler := postLog.NewLogSocketHandler(postLog.GetLogBroadcaster())
|
||||
http.HandleFunc("/system/getLogs", systemLogHandler.Handle)
|
||||
|
||||
http.HandleFunc("/register", RegisterHandler)
|
||||
http.HandleFunc("/login", LoginHandler)
|
||||
@@ -34,6 +35,7 @@ func setupRoutes() {
|
||||
http.HandleFunc("/frpcAct/instanceMgr/restart", RestartInstanceHandler)
|
||||
http.HandleFunc("/frpcAct/instanceMgr/status", GetInstanceStatusHandler)
|
||||
http.HandleFunc("/frpcAct/instanceMgr/getInfo", GetInstanceInfoHandler)
|
||||
http.HandleFunc("/frpcAct/instanceMgr/logs", frpLogger.NewInstanceLogHandler(ValidateTokenFromMap).ServeHTTP)
|
||||
http.HandleFunc("/frpcAct/proxyMgr/create", CreateProxyHandler)
|
||||
http.HandleFunc("/frpcAct/proxyMgr/delete", DeleteProxyHandler)
|
||||
http.HandleFunc("/frpcAct/proxyMgr/list", ListProxiesHandler)
|
||||
|
||||
Reference in New Issue
Block a user