Files
monibuca/plugin/vmlog/index.go
2024-12-04 14:07:22 +08:00

61 lines
1.5 KiB
Go

package plugin_vmlog
import (
"fmt"
"log/slog"
"net/http"
"github.com/VictoriaMetrics/VictoriaMetrics/app/vlinsert"
"github.com/VictoriaMetrics/VictoriaMetrics/app/vlselect"
"github.com/VictoriaMetrics/VictoriaMetrics/app/vlstorage"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/fs"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/logger"
"m7s.live/v5"
//"m7s.live/m7s/v5/plugin/logrotate/pb"
)
// todo 配置
type VmLogPlugin struct {
m7s.Plugin
//Path string `default:"./logs" desc:"日志文件存放目录"`
//Size uint64 `default:"1048576" desc:"日志文件大小,单位:字节"`
//Days int `default:"1" desc:"日志文件保留天数"`
//Formatter string `default:"2006-01-02T15" desc:"日志文件名格式"`
//MaxFiles uint64 `default:"7" desc:"最大日志文件数量"`
//Level string `default:"info" desc:"日志级别"`
handler slog.Handler
}
var _ = m7s.InstallPlugin[VmLogPlugin]()
func init() {
logger.Init()
}
func (config *VmLogPlugin) OnInit() (err error) {
vlstorage.Init()
vlselect.Init()
vlinsert.Init()
config.handler, err = NewVmLogHandler(nil, nil)
if err == nil {
config.Server.LogHandler.Add(config.handler)
}
return
}
func (config *VmLogPlugin) OnStop() {
vlinsert.Stop()
vlselect.Stop()
vlstorage.Stop()
fs.MustStopDirRemover()
fmt.Print("VmLogPlugin OnClose")
}
func (config *VmLogPlugin) OnExit() {
}
func (config *VmLogPlugin) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
requestHandler(rw, r)
}