{"record":{"id":"0a108f701bee0cf0","repo":"stanfordnlp/CoreNLP","slug":"could-not-find-redwood-log-property","errorCode":null,"errorMessage":"Could not find Redwood log property: ","messagePattern":"Could not find Redwood log property: ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/edu/stanford/nlp/util/logging/RedwoodConfiguration.java","lineNumber":625,"sourceCode":"\n    //--File\n    String outputFile = get(props, \"log.file\", null, used);\n    if (outputFile != null) {\n      config.defaultFile = new File(outputFile);\n      config = config.handlers(Handlers.defaultFile);\n    }\n\n    //--Console\n    config = config.output(get(props, \"log.output\", \"stdout\", used));\n\n    //--Console\n    config = config.handlers(Handlers.chain(chain.toArray(new LogRecordHandler[chain.size()]), Handlers.output));\n\n    //--Error Check\n    for(Object propAsObj : props.keySet()) {\n      String prop = propAsObj.toString();\n      if(prop.startsWith(\"log.\") && !used.contains(prop)){\n        throw new IllegalArgumentException(\"Could not find Redwood log property: \" + prop);\n      }\n    }\n    //--Return\n    return config;\n  }\n\n  /**\n   * Parses a properties file and applies it immediately to Redwood\n   * @param props The properties to apply\n   */\n  public static void apply(Properties props){\n    parse(props).apply();\n  }\n\n\n  /*\n  public static void main(String[] args) {\n    RedwoodConfiguration.empty().neatExit().capture(System.out).capture(System.err)","sourceCodeStart":607,"sourceCodeEnd":643,"githubUrl":"https://github.com/stanfordnlp/CoreNLP/blob/1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a/src/edu/stanford/nlp/util/logging/RedwoodConfiguration.java#L607-L643","documentation":"After parsing, parse() tracks which log.* properties were consumed in the 'used' set and throws this IllegalArgumentException for any remaining property starting with 'log.' — i.e. an unrecognized or misspelled Redwood logging property.","triggerScenarios":"Passing a Properties object with a key starting with log. that Redwood does not understand, e.g. log.loglevel, log.colour, log.colaps — any typo of a supported key.","commonSituations":"Typos in keys like log.neural vs log.neurl; inventing keys expecting they'd work; upgrading/downgrading CoreNLP where a log.* property name changed or was removed.","solutions":["Fix or remove the offending log.* property; valid keys include log.method, log.handlers, log.channels.debug, log.collapse, log.filter, etc.","Check the key spelling against RedwoodConfiguration documentation for your library version.","Rename application-specific keys so they do not start with the reserved 'log.' prefix.","If a property worked before, verify it still exists in the current library version (API changes between releases)."],"exampleFix":"// before\nprops.setProperty(\"log.colaps\", \"none\"); // typo\n// after\nprops.setProperty(\"log.collapse\", \"none\");","handlingStrategy":"validation","validationCode":"Set<String> known = Set.of(\"log.method\", \"log.handlers\", \"log.channels.debug\", \"log.collapse\", \"log.filter\", \"log.adapt.javautillogging\");\nfor (String key : props.stringPropertyNames()) {\n  if (key.startsWith(\"log.\") && !known.contains(key)) {\n    throw new IllegalArgumentException(\"Unknown Redwood log property: \" + key);\n  }\n}","typeGuard":null,"tryCatchPattern":"try {\n  RedwoodConfiguration.applyProperties(props);\n} catch (IllegalArgumentException e) {\n  if (e.getMessage().startsWith(\"Could not find Redwood log property:\")) {\n    String bad = e.getMessage().substring(e.getMessage().lastIndexOf(' ') + 1);\n    props.remove(bad); // or fix the key, then retry\n    RedwoodConfiguration.applyProperties(props);\n  } else throw e;\n}","preventionTips":["Keep the set of valid log.* keys in sync with your library version's documentation.","Namespace your own app settings away from the reserved 'log.' prefix.","After upgrading CoreNLP/Redwood, re-check all log.* keys against the new version."],"tags":["logging","configuration","unknown-property","validation"],"backgroundTag":"invalid-config-value","analyzedSha":"1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a","analyzedAt":"2026-09-10T02:24:07.274Z","contentChangedAt":"2026-09-10T02:24:07.274Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}