Files
monibuca/plugin/vmlog/index.go
langhuihui 8a9fffb987 refactor: frame converter and mp4 track improvements
- Refactor frame converter implementation
- Update mp4 track to use ICodex
- General refactoring and code improvements

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 19:55:37 +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](m7s.PluginMeta{})
func init() {
logger.Init()
}
func (config *VmLogPlugin) Start() (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) Dispose() {
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)
}