One more feature request: *Garbage-free ThreadContext Map and Stack Accessors*
I do not have the complete view of what it looks like under the hood, but to the best of my knowledge - ThreadContext.ContextStack does not provide any garbage-free iteration methods. - LogEvent#getContextData() returns a value of type ReadOnlyStringMap. This interface has implementations that do not provide garbage-free iteration methods as well. I would really appreciate if ThreadContext data and stack interfaces would enforce garbage-free accessors. On Fri, Nov 16, 2018 at 8:29 PM Volkan Yazıcı <[email protected]> wrote: > Hey Gary, > > *Package Name* > > Once every couple of months I found myself helping out people > for JAR Hell problems since they included wrong Log4j artifact. > The artifact and package names of Log4j 1 and Log4j 2 are > pretty similar looking. Hence I really encourage you to explicitly > state the version in artifact and package names. For instance, > log4j3-core and org.apache.logging.log4j3, etc. It goes without > saying, this will also aid SEO too, which is a pain right now. > > *Allowing Batches in Appender Interface* > > Is it also possible to extend the Appender interface such that in > addition to append(LogEvent), batched append(LogEvent[]), > append(LogEvent[], int offset, int length) are allowed as well? > > For instance, in log4j2-redis-appender I needed to implement > my own AsyncAppender logic to push the serialized LogEvent's > to Redis in batches. > > *Merging log4j2-redis-appender to master* > > Would you consider merging log4j2-redis-appender > <https://github.com/vy/log4j2-redis-appender> to master? > > *Merging log4j2-logstash-layout to master* > > Given its garbage-free superior performance and schema > customization support, would you consider merging > log4j2-logstash-layout > <https://github.com/vy/log4j2-logstash-layout/tree/json-generator> to > master? We can rebrand it as the > next JSONLayout and provide pre-cooked schemas for common > use cases, for instance, a schema of the old JSONLayout, a > schema for the pretty common Logstash event layout v1 > <https://github.com/logstash/log4j-jsonevent-layout>, etc. > > Best. > > > On Mon, Nov 5, 2018 at 10:01 PM Gary Gregory <[email protected]> > wrote: > >> Considerations for 3.0: >> >> - Currently targeting Java 8, seems OK to keep this for now. >> - Remove deprecated code >> - Make BC-breaking changes as we see fit to improve impl. >> - ? Update root package to include "3" to allow Log4j 1, 2, and 3 to >> co-exist peacefully on the claspath. Perhaps org.apache.logging.log4j3. >> - Do we need a compatibility layer for 1.2 to 3.0 and 2.x to 3.0? >> - Where can we use java.time? >> - Is it a goal to have Maven modules with NO optional dependencies? I >> think >> so. >> - Play nice in the Java 9 module system >> - Continue to break up current Maven modules >> - How can we make Core smaller? >> - Should we redo our config code to use something like Jackson or Commons >> Configuration? We have a lot of config code... Not sure if everything you >> can do in XML is doable in JSON and YAML. YAML is gross IMO but some >> people >> like it. >> >> What else? >> >> Gary >> >
