A high-performance, programmatically configurable logging library built from scratch for Scala, Scala.js, and Scala Native.
Scribe is a logging library built from scratch in Scala for the JVM, Scala.js, and Scala Native platforms. It solves performance and flexibility issues common in Java-based logging frameworks by leveraging macros for compile-time optimizations and enabling programmatic configuration without configuration files.
Scala developers across JVM, Scala.js, and Scala Native who need high-performance, configurable logging without the overhead of traditional Java logging frameworks.
Developers choose Scribe for its claim as the fastest JVM logger, cross-platform support, and the ability to configure logging programmatically in real-time, avoiding dependencies on external configuration files or frameworks.
The fastest logging library in the world. Built from scratch in Scala and programmatically configurable.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Scala macros to minimize runtime overhead, claiming to be the fastest logging framework on the JVM, as benchmarked and highlighted in the README's performance blog post reference.
Provides a uniform API across JVM, Scala.js, and Scala Native, addressing the common limitation of no logging support in Scala.js and Scala Native found in Java-based frameworks.
Enables programmatic logging adjustments without restarts or configuration files, allowing dynamic changes in production environments, as emphasized in the programmatic configuration feature.
Captures class, method, and line numbers at compile-time via macros, avoiding runtime stack traversal and performance penalties, a key feature detailed in the README.
Introduces logging via simple imports rather than mix-ins or boilerplate setup, making it more idiomatic to Scala, as noted in the clean logging feature.
As a newer, Scala-native library, it lacks the extensive plugins, appenders, and integrations available in established Java frameworks like Log4j or Logback, which may hinder adoption in complex enterprise environments.
Heavy reliance on Scala macros can introduce compilation challenges, potential IDE support issues, and compatibility risks with Scala version upgrades, as implied by the macro-based optimizations.
Complete documentation is hosted on a separate wiki, which may be less accessible, harder to search, or not as frequently updated compared to inline documentation or official Scala docs.
SLF4J interoperability requires an additional module ('scribe-slf4j'), adding dependencies and complexity, whereas native support in other frameworks might be more straightforward.