Hi Stephen,

Thanks for your feedback!

>    2. provide a way for a user to add a custom Appender/Layout/Filter?

Sure. Actually, currently the final logforth bundles many
appenders/layouts from separated crates. You can see [1] and [2].

[1] https://github.com/fast/logforth/tree/main/appenders
[2] 
https://github.com/fast/logforth/blob/66d2a47299a2609a7154b0737740f60ce18ad944/logforth/src/lib.rs#L73-L96

Logforth provides Appender/Layout/Filter (and Diagnostic/Trap) traits
(like Java interfaces in some ways) so custom implementations can
implement those traits and then pass them to the logger constructor.
You can take [3] as an example. Perhaps I can add more examples and
move them to a top-level "examples" dir.

[3] 
https://github.com/fast/logforth/blob/66d2a47299a2609a7154b0737740f60ce18ad944/logforth/examples/custom_layout_filter.rs

>    1.  support configuring logforth at runtime using a configuration file?

It's possible to configure Logforth at runtime, in a programmatic way, like [4].

[4] 
https://github.com/scopedb/percas/blob/89e23e9e46d2ee169f44e0542f2e2ddae8fafe62/crates/server/src/telemetry.rs#L131-L227

Since it reads from a config file "config.toml", I'd expect this is
what "configuring logforth at runtime using a configuration file"
means.

However, I know that Log4j and Logback each define their own dedicated
configuration file. Log4rs attempted something similar [5]. But I'd
say since Rust is more static while Java can dynamically load classes
and more, perhaps a customized config file like [4] and user-defined
loading logic would be more proper in Rust.

[5] 
https://github.com/estk/log4rs/blob/2e6dee8b10b54d9ddfef50aeed1bee5a1fd47e93/docs/Configuration.md

I remember that log4cxx implements some dynamic features in this part.
I'm glad to learn from it and see if logforth can leverage what
log4cxx does.

Best,
tison.

Stephen Webb <[email protected]> 于2025年12月2日周二 10:05写道:
>
> Hi tison,
>
> Do you have plans to:
>
>    1.  support configuring logforth at runtime using a configuration file?
>    2. provide a way for a user to add a custom Appender/Layout/Filter?
>
> I believe support for runtime configuration using a file would align
> logforth more closely with current Apache Logging libraries
> and support for customization would ease some pressure on the core library
> maintainers.
>
> Regards
> Stephen Webb
> PS: I have read your helpful post on logforth and educated myself a little
> on Rust (I have not used Rust) so think the above features would not be a
> problem in Rust.
>
> On Thu, Nov 27, 2025 at 2:52 AM tison <[email protected]> wrote:
>
> > > I would love to incorporate a log4rust framework in my toy project
> > https://github.com/DaanHoogland/mailscrape.
> >
> > Here is my patch for you https://github.com/DaanHoogland/mailscrape/pull/2
> > :D
> >
> > Users once told me that env_logger::init() is easy to start, so
> > logforth has a dedicated enhancement to provide a similar one-liner
> > setup. When you need more customization, you can break it down to more
> > concrete setup code.
> >
> > Besides, you may prefer jiff [1] over chrono. But that's off-topic to
> > this thread.
> >
> > [1] https://github.com/BurntSushi/jiff
> >
> > Best,
> > tison.
> >
> > tison <[email protected]> 于2025年11月26日周三 23:23写道:
> > >
> > > > Would you mind sharing your motivation and expectation for this move
> > >
> > > I understand the state you mentioned below this line.
> > >
> > > So far, Logforth has been maintained mainly by me. While it has had 11
> > > code contributors ever, most of them came and went. Basically, we have
> > > two maintainers (@andylokandy and I).
> > >
> > > The Rust world has several options for logging: tokio-rs/tracing,
> > > env_logger, slog, fern, log4rs, etc. However, none of them fit my
> > > requirements and aesthetic when finding a solution to ScopeDB.
> > >
> > > I like the design of Log4j and Logback, although their dynamic loading
> > > features may hardly be able to be implemented in Rust, their
> > > abstractions are straightforward and easy to extend. I wrote a blog
> > > (in Chinese, you can read it with a translator) about the background
> > > and history of this project [1].
> > >
> > > [1] https://www.tisonkun.org/2025/08/20/logforth/
> > >
> > > That said, many of the log libraries mentioned above are "under
> > > maintenance mode," while they are far from a solid, dependable target.
> > > I hope to extend the audience of Logforth and bring the good practices
> > > from existing logging services, like what Apache Logging Services
> > > developed, to the Rust developers.
> > >
> > > I may consider donating Logforth as a standalone project to the ASF
> > > after my self-assessment is clear that there is a small community to
> > > operate it (I'm an Incubator Mentor for a dozen podlings already :D),
> > > since I know the current challenges with Logging Services, as you
> > > mentioned.
> > >
> > > However, you guys have already been doing a great job in this area. So
> > > before I do any other things about ASF + Logforth, why not reach out
> > > to you and ask for your feedback :D
> > >
> > > Best,
> > > tison.
> > >
> > > tison <[email protected]> 于2025年11月26日周三 23:11写道:
> > > >
> > > > > Which companies use it?
> > > >
> > > > I developed Logforth for my cloud database company, ScopeDB [1]. Also,
> > > > other project like databend [2] use Logforth but it's a fork from an
> > > > early version.
> > > >
> > > > [1] https://github.com/scopedb/
> > > > [2] https://github.com/databendlabs/databend
> > > >
> > > > > What are the deployment contexts? Logger of a service?
> > > >
> > > > Yes. We use it to capture ScopeDB logs for self-observability. An
> > > > analogy of Log4j to ES is precise. For local development, we use the
> > > > stderr appender, and for the online deployment, we're currently
> > > > adopting the otel appender. Other users have reported usage of the
> > > > file appender. We also use Logforth with Fastrace [3] to provide full
> > > > request traces.
> > > >
> > > > [3] https://github.com/fast/fastrace
> > > >
> > > > > Which appenders/layouts are used most?
> > > >
> > > > For local dev and simple deployment, the stderr appender. In the
> > > > ScopeDB deployment, as described above, the OpenTelemetry appender. I
> > > > know some users who adopt the file appender.
> > > >
> > > > When the stderr appender is used, mainly the text layout [4] is used.
> > > > When it comes to file appender, both text layout and json layout [5]
> > > > are common choices. For the otel appender, typically no layout are
> > > > necessary. But we have a MakeBody trait [6] that can be used in
> > > > combination with a layout.
> > > >
> > > > [4]
> > https://docs.rs/logforth/latest/logforth/layout/struct.TextLayout.html
> > > > [5]
> > https://docs.rs/logforth/latest/logforth/layout/struct.JsonLayout.html
> > > > [6]
> > https://docs.rs/logforth-append-opentelemetry/0.3.1/logforth_append_opentelemetry/trait.MakeBody.html
> > > >
> > > > The main extension points of Logforth are:
> > > >
> > > > * Filters: as the well-known purpose
> > > > * Appenders: as the well-known purpose
> > > > * Layout: as the well-known purpose, but Logforth makes layout a
> > > > possible config of appenders where dedicated appenders would decide
> > > > whether or not to accept a layout. Because a layout for FastraceEvent
> > > > or Async appender is non-sense.
> > > > * Diagnostic: similar to MDC but in a less global-state way.
> > > > * Trap: Handle errors that should never go to user's call stack. Also,
> > > > only some appenders would opt in to this feature.
> > > >
> > > > Best,
> > > > tison.
> > > >
> > > > Daan Hoogland <[email protected]> 于2025年11月24日周一 14:22写道:
> > > > >
> > > > > Hi, Rust is for me just a hobby, though I would like to incorporate
> > it more into my daily. If this is any barrier for entry add me as reviewer.
> > > > >
> > > > > I would love to incorporate a log4rust framework in my toy project
> > https://github.com/DaanHoogland/mailscrape.
> > > > >
> > > > > greeting,
> > > > > --
> > > > >
> > > > > From: Volkan Yazıcı <[email protected]>
> > > > > Date: Sunday, 23 November 2025 at 22:33
> > > > > To: [email protected] <[email protected]>
> > > > > Subject: Re: Request for comment: A Rust logging library that is
> > inspired by Log4j and Logback
> > > > >
> > > > > Hey Zili!
> > > > >
> > > > > It is good to see you at Logging Services!
> > > > >
> > > > > [See my comments inline.]
> > > > >
> > > > > On Sat, Nov 22, 2025 at 5:32 PM tison <[email protected]> wrote:
> > > > >
> > > > > > It borrows many concepts from log4j and logback, and it is used in
> > > > > > production handling millions/s of logs, so IMO it's relatively
> > solid.
> > > > > >
> > > > >
> > > > > Would you mind providing a little bit more context about its usage,
> > please?
> > > > > [I know it is very hard to probe this for F/OSS, but I'd appreciate
> > any
> > > > > information you can provide on this.] Which companies use it? What
> > are the
> > > > > deployment contexts? Logger of a service? (Consider an Elasticsearch
> > > > > cluster logging using Log4j.) Logger of client/server application?
> > > > > (Consider a custom Spring Boot application.) Which appenders/layouts
> > are
> > > > > used most?
> > > > >
> > > > > "millions/s" of logs? Can you quantify this more in detail, please?
> > > > >
> > > > >
> > > > > > I'm considering moving it to the ASF, but I'd first ask for some
> > > > > > logging devs review on the APIs if anyone here has some spare time.
> > > > > >
> > > > >
> > > > > I think Logging Services is certainly the right place to collect
> > feedback
> > > > > on logging system APIs. The community, including maintainers,
> > possesses a
> > > > > wealth of experience on the subject. IMHO, we can indeed support you
> > there.
> > > > >
> > > > > > I'm considering moving it to the ASF
> > > > >
> > > > > Would you mind sharing your motivation and expectation for this move,
> > > > > please?
> > > > >
> > > > > Personally, I'd be very happy to see Logging Services supporting the
> > Rust
> > > > > ecosystem. That being said, AFAICT, 1) we're pretty much understaffed
> > > > > (Log4j PRs are almost always reviewed by only two people, and
> > > > > Log4net/Log4cxx need Java maintainers' +1s to cut releases due to
> > > > > insufficient number of PMC members with .NET/C++ expertise), and 2)
> > none of
> > > > > the maintainers have serious work experience with Rust. Given the
> > current
> > > > > status quo, I am concerned about slowing down the Logforth
> > development (due
> > > > > to ASF release policies taking days to cut a release) and not being
> > able to
> > > > > contribute to the project meaningfully (due to lack of Rust
> > expertise). I
> > > > > am curious to hear your thoughts.
> > > > >
> > > > > Cheers!
> > > > >
> > > > >
> > > > > Daan Hoogland
> > > > > Community Lead
> > > > > s: +44 20 3603 0540  |   m: +31 61400 4545
> > > > > e: [email protected]  |  w: www.shapeblue.com  |  t:
> > @shapeblue
> > > > > a: 3 London Bridge Street,  3rd floor, News Building, London  SE1
> > 9SG UK
> > > > >
> > > > >
> > > > > Shape Blue Ltd is a company incorporated in England & Wales.
> > ShapeBlue is a registered trademark. This email and any attachments to it
> > may be confidential and are intended solely for the use of the individual
> > to whom it is addressed. Any views or opinions expressed are solely those
> > of the author and do not necessarily represent those of Shape Blue Ltd or
> > related companies. If you are not the intended recipient of this email, you
> > must neither take any action based upon its contents, nor copy or show it
> > to anyone. Please contact the sender if you believe you have received this
> > email in error.
> > > > >
> > > > > Find out more about ShapeBlue and our range of CloudStack related
> > services:
> > > > >
> > > > > IaaS Cloud Design Build | CloudStack Consulting | CloudStack
> > Software Engineering
> > > > > CloudStack Infrastructure Support | CloudStack Bootcamp Training
> > Courses
> >

Reply via email to