All Projects → outr → Scribe

outr / Scribe

Licence: mit
The fastest logging library in the world. Built from scratch in Scala and programmatically configurable.

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Scribe

Scala Logging
Convenient and performant logging library for Scala wrapping SLF4J.
Stars: ✭ 804 (+164.47%)
Mutual labels:  logging, logback, slf4j
Izumi
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain
Stars: ✭ 423 (+39.14%)
Mutual labels:  logging, logging-library, slf4j
Logback Access Spring Boot Starter
Spring Boot Starter for Logback-access
Stars: ✭ 118 (-61.18%)
Mutual labels:  logging, logback
Logback Chinese Manual
logback 中文手册/文档。
Stars: ✭ 138 (-54.61%)
Mutual labels:  logging, logback
Tomcat Slf4j Logback
Tomcat, SLF4J and Logback integration Releases
Stars: ✭ 172 (-43.42%)
Mutual labels:  logging, logback
Lilith
Lilith is a Logging- and AccessEvent viewer for Logback, log4j, log4j2 and java.util.logging
Stars: ✭ 111 (-63.49%)
Mutual labels:  logging, logback
Cscore
cscore is a minimal-footprint library providing commonly used helpers & patterns for your C# projects. It can be used in both pure C# and Unity projects.
Stars: ✭ 115 (-62.17%)
Mutual labels:  logging, logging-library
Logging
Microsoft Extension Logging implementation for Blazor
Stars: ✭ 165 (-45.72%)
Mutual labels:  logging, logging-library
Yurnalist
An elegant console reporter, borrowed from Yarn
Stars: ✭ 88 (-71.05%)
Mutual labels:  logging, logging-library
herald
Log annotation for logging frameworks
Stars: ✭ 71 (-76.64%)
Mutual labels:  slf4j, logback
slack-webhook-appender
Logback appender which posts logs to slack via incoming webhook.
Stars: ✭ 16 (-94.74%)
Mutual labels:  slf4j, logback
liquibase-slf4j
Liquibase SLF4J Logger.
Stars: ✭ 42 (-86.18%)
Mutual labels:  slf4j, logback
Nanolog
Nanolog is an extremely performant nanosecond scale logging system for C++ that exposes a simple printf-like API.
Stars: ✭ 1,710 (+462.5%)
Mutual labels:  logging, logging-library
Kotlin Logging
Lightweight logging framework for Kotlin. A convenient and performant logging library wrapping slf4j with Kotlin extensions
Stars: ✭ 1,378 (+353.29%)
Mutual labels:  logging, slf4j
Easyloggingpp
Single header C++ logging library. It is extremely powerful, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.
Stars: ✭ 3,032 (+897.37%)
Mutual labels:  logging, logging-library
Tracing
Application level tracing for Rust.
Stars: ✭ 1,294 (+325.66%)
Mutual labels:  logging, logging-library
Json Logging Python
Python logging library to emit JSON log that can be easily indexed and searchable by logging infrastructure such as ELK, EFK, AWS Cloudwatch, GCP Stackdriver
Stars: ✭ 143 (-52.96%)
Mutual labels:  logging, logging-library
echopraxia
Java Logging API with clean and simple structured logging and conditional & contextual features. JSON implementations in Logback and Log4J.
Stars: ✭ 37 (-87.83%)
Mutual labels:  slf4j, logback
Timbre
Pure Clojure/Script logging library
Stars: ✭ 1,253 (+312.17%)
Mutual labels:  logging, slf4j
Zio Logging
Simple logging for ZIO apps, with correlation, context & pluggable backends out of the box.
Stars: ✭ 85 (-72.04%)
Mutual labels:  logging, slf4j

scribe

Build Status Codacy Badge Codacy Badge Gitter Maven Central Latest version Javadocs

Scribe is a completely different way of thinking about logging. Instead of wrapping around existing logging frameworks and bearing their performance and design flaws, Scribe is built from the ground up to provide fast and effective logging in Scala, Scala.js, and Scala Native without the need of configuration files or additional dependencies. All management of logging can be handled programmatically (of course, classic logging configuration can be utilized as well if desired) in Scala itself, giving the developer the freedom to use whatever configuration framework, if any, they should choose to use.

Availability

Scribe is available on the JVM, Scala.js, and ScalaNative with cross-compiling for Scala 2.11, 2.12, 2.13, and 3

Quick Start

For people that want to skip the explanations and see it action, this is the place to start!

Dependency Configuration

libraryDependencies += "com.outr" %% "scribe" % "3.4.0"

For Cross-Platform projects (JVM, JS, and/or Native):

libraryDependencies += "com.outr" %%% "scribe" % "3.4.0"

Or, if you want interoperability with SLF4J (to allow better interoperability with existing libraries using other loggers):

libraryDependencies += "com.outr" %% "scribe-slf4j" % "3.4.0"

Usage

scribe.info("Yes, it's that simple!")

Why Another Logging Framework?

Yes, we know there are too many Java logging frameworks to count, and a large number of decent logging frameworks in Scala, so why did we write yet another logging framework? Nearly every Scala logging framework is mostly just a wrapper around Java logging frameworks (usually SLF4J, Log4J, or Logback). This comes with a few problems:

  1. No support for Scala.js
  2. No support for Scala Native
  3. Performance cost (Blog Post: http://www.matthicks.com/2018/02/scribe-2-fastest-jvm-logger-in-world.html)
  4. Additional dependencies
  5. Substantial cost logging method and line numbers
  6. Lack of programmatic configuration support

A few of the main features that Scribe offers (for a complete list):

  1. Performance is a critical consideration. We leverage Macros to handle optimization of everything possible at compile-time to avoid logging slowing down your production application. As far as we are aware, Scribe is the fastest logging framework on the JVM.
  2. Programmatic configuration. No need to be bound to configuration files to configure your logging. This means you can rely on any configuration framework or you can configure real-time changes to your logging in your production environment. This particularly comes in handy if you need to enable debug logging on something going wrong in production. No need to restart your server, simply provide a mechanism to modify the logging configuration in real-time.
  3. Clean logging. Macros allow us to introduce logging into a class via an import instead of a mix-in or unnecessary setup code.
  4. Zero cost class, method, and line number logging built-in. Never worry about your logger working up the stack to figure out the position of the logging statement at runtime. With Macros we determine that information at compile-time to avoid any runtime cost.
  5. Asynchronous logging support. Scribe's logger is very fast, but if real-time performance is critical, the asynchronous logging support completely removes logging impact from your application's thread impact.

Documentation

Advanced Topics

Optional Modules

Community

The best way to receive immediate feedback for any questions is via our Gitter channel

Acknowledgements

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].