Handle server close; Update logger

This commit is contained in:
Pijus Kamandulis 2025-01-15 00:23:54 +02:00
parent 8b8b087aab
commit 96d3a0a7ae
3 changed files with 32 additions and 12 deletions

View File

@ -103,7 +103,7 @@ func (s *ApiServer) Start() {
if s.config.DisableTls {
logger.Infof("Listening and serving HTTP on %s\n", server.Addr)
err := server.ListenAndServe()
if err != nil {
if err != nil && err != http.ErrServerClosed {
logger.ErrorLn("Failed to start HTTP server:", err)
}
s.isActive = false
@ -112,7 +112,7 @@ func (s *ApiServer) Start() {
err := server.ListenAndServeTLS(
s.config.TLS_CertificatePath,
s.config.TLS_CertificateKey)
if err != nil {
if err != nil && err != http.ErrServerClosed {
logger.ErrorLn("Failed to start HTTPS server:", err)
}
s.isActive = false
@ -122,7 +122,7 @@ func (s *ApiServer) Start() {
logger.Infof("Listening and serving HTTPS on %s\n", server.Addr)
err := server.ListenAndServeTLS("", "")
if err != nil {
if err != nil && err != http.ErrServerClosed {
logger.ErrorLn("Failed to start HTTPS server:", err)
}
s.isActive = false

View File

@ -1,8 +1,11 @@
package logger
import (
"fmt"
"log"
"os"
"runtime"
"strings"
)
type LogLevelType int
@ -20,25 +23,28 @@ type LogWriter struct {
var LogLevel = LogLevelInfo
var DebugLogger = log.New(os.Stdout, "", log.Ldate|log.Ltime|log.Lshortfile)
var DebugLogger = log.New(os.Stdout, "", log.Ldate|log.Ltime)
var InfoLogger = log.New(os.Stdout, "", log.Ldate|log.Ltime)
var ErrorLogger = log.New(os.Stderr, "", log.Ldate|log.Ltime|log.Lshortfile)
var ErrorLogger = log.New(os.Stderr, "", log.Ldate|log.Ltime)
func DebugLn(v ...any) {
if LogLevel <= LogLevelDebug {
DebugLogger.Println(v...)
prefix := getCallerPrefix()
DebugLogger.Println(append([]interface{}{prefix}, v...)...)
}
}
func Debug(v ...any) {
if LogLevel <= LogLevelDebug {
DebugLogger.Print(v...)
prefix := getCallerPrefix()
DebugLogger.Println(append([]interface{}{prefix}, v...)...)
}
}
func Debugf(format string, v ...any) {
if LogLevel <= LogLevelDebug {
DebugLogger.Printf(format, v...)
prefix := getCallerPrefix()
DebugLogger.Printf(prefix+format, v...)
}
}
@ -62,19 +68,22 @@ func Infof(format string, v ...any) {
func ErrorLn(v ...any) {
if LogLevel <= LogLevelError {
ErrorLogger.Println(v...)
prefix := getCallerPrefix()
ErrorLogger.Println(append([]interface{}{prefix}, v...)...)
}
}
func Error(v ...any) {
if LogLevel <= LogLevelError {
ErrorLogger.Print(v...)
prefix := getCallerPrefix()
ErrorLogger.Print(append([]interface{}{prefix}, v...)...)
}
}
func Errorf(format string, v ...any) {
if LogLevel <= LogLevelError {
ErrorLogger.Printf(format, v...)
prefix := getCallerPrefix()
ErrorLogger.Printf(prefix+format, v...)
}
}
@ -102,3 +111,14 @@ func InfoWriter() *LogWriter {
func DebugWriter() *LogWriter {
return &LogWriter{WriterLevel: LogLevelDebug}
}
func getCallerPrefix() string {
_, file, line, ok := runtime.Caller(2)
if ok {
parts := strings.Split(file, "/")
file = parts[len(parts)-1]
return fmt.Sprintf("%s:%d - ", file, line)
}
return ""
}

View File

@ -42,7 +42,7 @@ int test_ServerInstanceStateMethods()
return 0;
}
const char *expected_state = "{\"databases\":{\"test-db\":{\"id\":\"test-db\",\"_ts\":0,\"_rid\":\"\",\"_etag\":\"\",\"_self\":\"\"}},\"collections\":{\"test-db\":{}},\"documents\":{\"test-db\":{}}}";
const char *expected_state = "{\"databases\":{\"test-db\":{\"id\":\"test-db\",\"_ts\":0,\"_rid\":\"\",\"_etag\":\"\",\"_self\":\"\"}},\"collections\":{\"test-db\":{}},\"documents\":{\"test-db\":{}},\"triggers\":{\"test-db\":{}},\"sprocs\":{\"test-db\":{}},\"udfs\":{\"test-db\":{}}}";
char *compact_state = compact_json(state);
if (!compact_state)
{