e1.4.4 Fix module path and dependency issues, compatibility package added.
This commit is contained in:
75
example/fasthttp/main.go
Normal file
75
example/fasthttp/main.go
Normal file
@ -0,0 +1,75 @@
|
||||
// FILE: examples/fasthttp/main.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/lixenwraith/log"
|
||||
"github.com/lixenwraith/log/compat"
|
||||
"github.com/valyala/fasthttp"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Create and configure logger
|
||||
logger := log.NewLogger()
|
||||
err := logger.InitWithDefaults(
|
||||
"directory=/var/log/fasthttp",
|
||||
"level=0",
|
||||
"format=txt",
|
||||
"buffer_size=2048",
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer logger.Shutdown()
|
||||
|
||||
// Create fasthttp adapter with custom level detection
|
||||
fasthttpAdapter := compat.NewFastHTTPAdapter(
|
||||
logger,
|
||||
compat.WithDefaultLevel(log.LevelInfo),
|
||||
compat.WithLevelDetector(customLevelDetector),
|
||||
)
|
||||
|
||||
// Configure fasthttp server
|
||||
server := &fasthttp.Server{
|
||||
Handler: requestHandler,
|
||||
Logger: fasthttpAdapter,
|
||||
|
||||
// Other server settings
|
||||
Name: "MyServer",
|
||||
Concurrency: fasthttp.DefaultConcurrency,
|
||||
ReadTimeout: 5 * time.Second,
|
||||
WriteTimeout: 10 * time.Second,
|
||||
IdleTimeout: 120 * time.Second,
|
||||
TCPKeepalive: true,
|
||||
ReduceMemoryUsage: true,
|
||||
}
|
||||
|
||||
// Start server
|
||||
fmt.Println("Starting server on :8080")
|
||||
if err := server.ListenAndServe(":8080"); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func requestHandler(ctx *fasthttp.RequestCtx) {
|
||||
ctx.SetContentType("text/plain")
|
||||
fmt.Fprintf(ctx, "Hello, world! Path: %s\n", ctx.Path())
|
||||
}
|
||||
|
||||
func customLevelDetector(msg string) int64 {
|
||||
// Custom logic to detect log levels
|
||||
// Can inspect specific fasthttp message patterns
|
||||
|
||||
if strings.Contains(msg, "connection cannot be served") {
|
||||
return log.LevelWarn
|
||||
}
|
||||
if strings.Contains(msg, "error when serving connection") {
|
||||
return log.LevelError
|
||||
}
|
||||
|
||||
// Use default detection
|
||||
return compat.detectLogLevel(msg)
|
||||
}
|
||||
Reference in New Issue
Block a user