Hello Chia-Ping I have just included the configuration migration section in the KIP-653 <https://cwiki.apache.org/confluence/x/GCx4CQ>. Please take a look.
Best, TengYao Jörn Franke <jornfra...@gmail.com> 於 2024年11月19日 週二 上午12:36寫道: > Yaml allows to add comments compared to JSON which is not only for > examples good, but also to document certain implications when deploying > production configuration. > > > Am 18.11.2024 um 15:02 schrieb TengYao Chi <kiting...@gmail.com>: > > > > Hi everyone, > > > > From my experience, it has been quite challenging to understand and > > transform the .properties file from log4j 1 to log4j 2, as the properties > > format is fairly flat and difficult to understand. > > In comparison, YAML is more structured, easier to read, and widely used. > I > > would like to +1 for using YAML properties instead. > > If a KIP is required, I am willing to prepare one. > > > > Best, > > TengYao > > > > Mickael Maison <mickael.mai...@gmail.com> 於 2024年11月18日 週一 下午9:35寫道: > > > >> Hi Chia-Ping, > >> > >> Yes in 4.0.0 we will only provide log4j2 configuration files. We will > >> still support log4j.properties files for compatibility but that will > >> print a warning when these are used. > >> > >> However my question is about the format of our log4j2 files. Currently > >> in the PR we are using the "properties" format (log4j2.properties). > >> But as pointed by Piotr (from the Apache Logging PMC), log4j2 has a > >> hierarchical structure which does not translate well into the > >> properties format, so configuration file in this format have many > >> quirks. Instead he suggested using XML, JSON or YAML in our example > >> files (so log4j2.xml or log4j2.json or log4j2.yaml) as these are the > >> preferred formats now. > >> > >> David, Viktor and myself have expressed our preference toward adopting > >> YAML for our log4j2 configuration files. I'm wondering if that's > >> enough consensus, or if people want to discuss this further, or even > >> want a vote? > >> > >> Thanks, > >> Mickael > >> > >> > >>> On Mon, Nov 18, 2024 at 1:52 PM Chia-Ping Tsai <chia7...@gmail.com> > wrote: > >>> > >>> hi, Mickael > >>> > >>> I'm +1 for using the log4j2 format. Otherwise, it's odd for users to > see > >>> deprecation warnings about log4j.properties when using our example > files. > >>> > >>> Best, > >>> Chia-Ping > >>> > >>> > >>> > >>> Mickael Maison <mickael.mai...@gmail.com> 於 2024年11月18日 週一 下午7:33寫道: > >>> > >>>> Hi, > >>>> > >>>> The log4j2 migration PR is pretty much ready to be merged and the > >>>> first deadlines for 4.0.0 is approaching fast. > >>>> I think we should decide which format to use in our example log4j2 > >>>> files to avoid having to update the format shortly after 4.0.0. > >>>> > >>>> This point is not really covered by KIP-653: Upgrade log4j to log4j2. > >>>> Do we want another KIP and vote or is a consensus emerging? > >>>> > >>>> Thanks, > >>>> Mickael > >>>> > >>>> On Wed, Nov 6, 2024 at 10:47 AM Mickael Maison < > >> mickael.mai...@gmail.com> > >>>> wrote: > >>>>> > >>>>> Hi, > >>>>> > >>>>> I think our example log4j2 file should be as idiomatic as possible. > >> If > >>>>> YAML is now the recommended format, then it makes sense to adopt it. > >> I > >>>>> would also do this directly in 4.0.0. > >>>>> > >>>>> Like David, one concern when adding extra dependencies is CVEs. YAML > >>>>> is a widely used format and the libraries are actively maintained so > >> I > >>>>> think it's acceptable. > >>>>> > >>>>> In my opinion, the configuration format for Kafka is a completely > >>>>> orthogonal issue. If people want to adopt YAML this can be done in a > >>>>> separate discussion. I don't see issues with using YAML for > >>>>> configuring log4j2 and properties for Kafka. > >>>>> > >>>>> Thanks, > >>>>> Mickael > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Thu, Oct 31, 2024 at 5:47 PM Piotr P. Karwasz > >>>>> <pi...@mailing.copernik.eu> wrote: > >>>>>> > >>>>>> Hi Viktor, > >>>>>> > >>>>>> On 31.10.2024 10:19, Viktor Somogyi-Vass wrote: > >>>>>>> I could see a transition for Kafka configs too to YAML. It's > >> widely > >>>> used in > >>>>>>> other projects as well and for Kafka too it would make sense to > >>>> group them > >>>>>>> for instance by log, storage, networking, security etc.. It > >>>> definitely > >>>>>>> has an advantage that we could move to a more well defined > >> structure > >>>> and > >>>>>>> away from these long prefixes which are very cumbersome in some > >>>> places. > >>>>>>> Perhaps 4.0 would have been a good candidate but given that we > >> should > >>>>>>> provide backward compatibility anyway, later is good too. > >>>>>> > >>>>>> To migrate the configuration from Java Properties to YAML and > >> maintain > >>>>>> BC, you can use `jackson-dataformat-properties`. This definitively > >> can > >>>>>> be done in a minor release. > >>>>>> > >>>>>> [1] > >>>>>> > >>>> > >> > https://github.com/FasterXML/jackson-dataformats-text/blob/master/properties/README.md > >>>>>> > >>>>>>> 4. Data bindings and parsers are common sources of CVEs. It looks > >>>> like > >>>>>>> Snakeyaml is no exception ( > >>>>>>> https://www.cvedetails.com/version-list/0/66013/1/), though it > >>>> doesn't look > >>>>>>> much worse than Jackson. Just to point out, this will add a bit > >> of > >>>>>>> dependency overhead as we keep up with security patches. > >>>>>>> > >>>>>>> It's a good point about CVEs. I haven't seen it on the dev list > >> but > >>>> were > >>>>>>> there any conversations about enabling dependabot version > >> updates? > >>>> With > >>>>>>> automatic dependabot PRs we could get fixes in as soon as it > >> opens > >>>> the PR. > >>>>>> > >>>>>> I don't know how it works in Gradle, but with Maven we don't get > >>>>>> Dependabot PRs for transitive dependencies such as SnakeYAML. > >> Since the > >>>>>> dependency is not present in the `pom.xml`, its version can not be > >>>>>> updated. Dependabot might be able to create alerts in the > >> "Security" > >>>> tab > >>>>>> though. > >>>>>> > >>>>>> Since Log4j is a library without an executable distribution, it is > >> not > >>>>>> guaranteed that a new version of Log4j will be released each time a > >>>>>> vulnerability in SnakeYAML is discovered and that vulnerability is > >>>>>> exploitable in Log4j Core. It does not make much sense to make a > >> new > >>>>>> release just to upgrade a number in `pom.xml`. > >>>>>> > >>>>>> Until VEX-es can be created automatically, the only way I can > >> think of > >>>>>> to help the Kafka team with CVEs in transitive dependencies is a > >> manual > >>>>>> process: > >>>>>> > >>>>>> * You mark `jackson-dataformat-yaml` with a comment like "Used by > >> Log4j > >>>>>> Core". > >>>>>> > >>>>>> * If a CVE is reported against that artifact or its dependencies, > >> you > >>>>>> open an issue in Log4j[2], so we can advise on the exploitability > >> of > >>>> the > >>>>>> CVE. > >>>>>> > >>>>>> * With that information you can decide whether to release a new > >> Kafka > >>>>>> version or not. > >>>>>> > >>>>>> Piotr > >>>>>> > >>>>>> [2] https://github.com/apache/logging-log4j2/issues > >>>>>> > >>>>>> > >>>> > >> >