{"record":{"id":"8b2fd80298037366","repo":"crowdsecurity/crowdsec","slug":"failed-to-parse-log-level-s","errorCode":null,"errorMessage":"failed to parse log_level: %s","messagePattern":"failed to parse log_level: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/acquisition/modules/wineventlog/config_windows.go","lineNumber":222,"sourceCode":"\t}\n\n\ts.config.EventFile = args[0]\n\n\tif len(args) == 2 && args[1] != \"\" {\n\t\tparams, err := url.ParseQuery(args[1])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse DSN parameters: %w\", err)\n\t\t}\n\n\t\tfor key, value := range params {\n\t\t\tswitch key {\n\t\t\tcase \"log_level\":\n\t\t\t\tif len(value) != 1 {\n\t\t\t\t\treturn errors.New(\"log_level must be a single value\")\n\t\t\t\t}\n\t\t\t\tlvl, err := log.ParseLevel(value[0])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"failed to parse log_level: %s\", err)\n\t\t\t\t}\n\t\t\t\ts.logger.Logger.SetLevel(lvl)\n\t\t\tcase \"event_id\":\n\t\t\t\tfor _, id := range value {\n\t\t\t\t\tevtid, err := strconv.Atoi(id)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn fmt.Errorf(\"failed to parse event_id: %s\", err)\n\t\t\t\t\t}\n\t\t\t\t\ts.config.EventIDs = append(s.config.EventIDs, evtid)\n\t\t\t\t}\n\t\t\tcase \"event_level\":\n\t\t\t\tif len(value) != 1 {\n\t\t\t\t\treturn errors.New(\"event_level must be a single value\")\n\t\t\t\t}\n\t\t\t\ts.config.EventLevel = value[0]\n\t\t\t}\n\t\t}\n\t}","sourceCodeStart":204,"sourceCodeEnd":240,"githubUrl":"https://github.com/crowdsecurity/crowdsec/blob/909b5157986a2b2c2163300fdaef5ed01289f7d2/pkg/acquisition/modules/wineventlog/config_windows.go#L204-L240","documentation":"The `log_level` DSN parameter must be a single value parseable by log.ParseLevel (e.g. debug, info, warn, error). This error is returned when the value fails ParseLevel, meaning it is not one of the recognized level strings.","triggerScenarios":"A DSN like `wineventlog://System?log_level=verbose` — 'verbose' is not a valid level — or `log_level=DEBUG ` with stray whitespace/casing variants ParseLevel rejects. (log.ParseLevel is case-insensitive but does not accept unknown words.)","commonSituations":"Users confusing Windows event levels (verbose) with logrus levels (trace/debug/info/warn/error/fatal/panic), or specifying two values like `log_level=info,error`.","solutions":["Use one of the accepted level strings: panic, fatal, error, warn, warning, info, debug, trace.","If you intended to filter Windows event severities, use the `event_level` parameter instead of `log_level`.","Remove whitespace and ensure only a single log_level value is present.","Example valid DSN: `wineventlog://System?log_level=debug`."],"exampleFix":"// before\nwineventlog://System?log_level=verbose\n// after\nwineventlog://System?log_level=debug","handlingStrategy":"validation","validationCode":"var validLevels = map[string]bool{\"panic\":true,\"fatal\":true,\"error\":true,\"warn\":true,\"warning\":true,\"info\":true,\"debug\":true,\"trace\":true}\nif !validLevels[strings.ToLower(lvl)] { return fmt.Errorf(\"invalid log_level %q\", lvl) }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use logrus level names only; Windows 'verbose' maps to 'debug'/'trace'","Use event_level for Windows severity filtering, not log_level","Provide one value per log_level parameter"],"tags":["dsn","logging","parsing"],"backgroundTag":"invalid-enum-value","analyzedSha":"909b5157986a2b2c2163300fdaef5ed01289f7d2","analyzedAt":"2026-09-06T12:27:26.012Z","contentChangedAt":"2026-09-06T12:27:26.012Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}