{"record":{"id":"19f628777c183d8d","repo":"amir20/dozzle","slug":"panic-err-on-invalid-level-value","errorCode":null,"errorMessage":"panic(err) on invalid --level value","messagePattern":"panic\\(err\\) on invalid --level value","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"internal/support/cli/logger.go","lineNumber":15,"sourceCode":"package cli\n\nimport (\n\t\"os\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/rs/zerolog/log\"\n)\n\nfunc ConfigureLogger(level string) {\n\tif level, err := zerolog.ParseLevel(level); err == nil {\n\t\tzerolog.SetGlobalLevel(level)\n\t\tlog.Logger = log.With().Str(\"version\", Version).Logger()\n\t} else {\n\t\tpanic(err)\n\t}\n\n\t_, dev := os.LookupEnv(\"DEV\")\n\n\tif dev {\n\t\twriter := zerolog.NewConsoleWriter(func(w *zerolog.ConsoleWriter) {\n\t\t\tw.FieldsOrder = []string{\"id\", \"from\", \"to\", \"since\"}\n\t\t})\n\t\tlog.Logger = log.Output(writer)\n\t}\n}\n","sourceCodeStart":1,"sourceCodeEnd":27,"githubUrl":"https://github.com/amir20/dozzle/blob/d9463cbe21874e44ab79db6fa63e746ca7d22928/internal/support/cli/logger.go#L1-L27","documentation":"ConfigureLogger validates the --level value with zerolog.ParseLevel and panics if it is not one of the accepted levels (trace, debug, info, warn, error, fatal, panic, disabled). This is a fail-fast crash at startup for invalid CLI/env configuration.","triggerScenarios":"Starting dozzle with --level=verbose, --level=INFO (uppercase), or DOZZLE_LEVEL=logging; any value outside zerolog's enum panics during ParseArgs/ConfigureLogger.","commonSituations":"Typo in docker-compose DOZZLE_LEVEL env var; copying a level name from another logging library (e.g. log4j \"INFO\"); automation scripts passing empty or numeric levels.","solutions":["Set --level or DOZZLE_LEVEL to a valid lowercase zerolog level: trace, debug, info, warn, error, fatal, panic, or disabled.","Strip surrounding whitespace and lowercase the value in deployment config.","Remove the DOZZLE_LEVEL env var entirely to use the default level."],"exampleFix":"# before\nenvironment:\n  - DOZZLE_LEVEL=INFO\n# after\nenvironment:\n  - DOZZLE_LEVEL=info","handlingStrategy":"validation","validationCode":"const VALID_LEVELS = ['trace','debug','info','warn','error','fatal','panic','disabled'];\nconst level = (process.env.DOZZLE_LEVEL || 'info').trim().toLowerCase();\nif (!VALID_LEVELS.includes(level)) throw new Error(`invalid --level value: ${level}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep DOZZLE_LEVEL lowercase and free of whitespace.","Only use zerolog's level enum, never levels from other logging frameworks.","Lint docker-compose files for this env var's allowed values."],"tags":["cli","logging","config","panic"],"backgroundTag":"invalid-cli-argument","analyzedSha":"d9463cbe21874e44ab79db6fa63e746ca7d22928","analyzedAt":"2026-09-07T10:08:55.855Z","contentChangedAt":"2026-09-07T10:08:55.855Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}