package app_logger

import (
	

	
	
	
	
	
)

// Creates a new app logger instance
// This logger logs requests and removes safe information like password etc.
func () fiber.Handler {
	return func( *fiber.Ctx) ( error) {
		.Locals("log_id", uuid.NewString())

		 := helpers.Env("NEW_LOG_LEVEL", "2")
		switch  {
		case "0":
			if !helpers.Contains(logger.ALL, .Path()) {
				return .Next()
			}
		case "1":
			if !helpers.Contains(logger.MINIMAL, .Path()) {
				return .Next()
			}
		case "2":
			if !helpers.Contains(logger.EXT_LOG, .Path()) {
				return .Next()
			}
		case "3":
			if !helpers.Contains(logger.EXT_DETAIL, .Path()) {
				return .Next()
			}
		default:
			return .Next()
		}

		 := helpers.GetFormData()

		for  := range  {
			if strings.Contains(strings.ToLower(), "password") || strings.Contains(strings.ToLower(), "token") {
				[] = ""
			}
		}

		 := ""
		if .Locals("user_id") != nil {
			 = .Locals("user_id").(string)
		}

		logger.Sugar().WithOptions(
			zap.WithCaller(false),
		).Infow(
			"render engine request",
			"lmn_level", "request",
			"log_id", .Locals("log_id").(string),
			"user_id", ,
			"route", .Path(),
			"ip_address", .IPs(),
			"request_details", ,
		)

		return .Next()
	}
}