timbre

Configure centralized logging for Clojure and ClojureScript applications.

3|Updated Nov 10, 2025
One-click install
npx skills add https://github.com/hugoduncan/library-skills --skill timbre
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: timbre
Source: https://github.com/hugoduncan/library-skills/tree/main/plugins/clojure-libraries/skills/timbre
Command: npx skills add https://github.com/hugoduncan/library-skills --skill timbre

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires com.taoensso/timbre, and includes scripts (resource) components.

What problem does it solve?

This Skill provides a flexible, Clojure-native logging solution, overcoming the rigidity and configuration complexity of traditional logging frameworks to deliver clear, actionable logs.

Core Features & Use Cases

  • Pure Clojure Configuration: Manage all logging settings with simple Clojure data structures, eliminating the need for XML or properties files.
  • Flexible Appenders & Middleware: Route logs to multiple destinations (console, file, custom systems) and transform log data on the fly for enhanced context.
  • Performance & Control: Utilize compile-time elision, async logging, and rate limiting to optimize performance and manage log volume effectively.
  • Use Case: Configure your application to log detailed debug messages to the console during development, while simultaneously sending only warnings and errors to a production log file, with critical errors also triggering an email notification, all managed from a single Clojure config.

Quick Start

Use the timbre skill to configure logging to output only messages at the 'info' level or higher to the console.

Frequently Asked Questions about timbre

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure centralized logging in a Clojure application?

Centralized logging in Clojure is configured using Timbre, a flexible library that manages all logging settings through simple Clojure data structures. Define appenders, middleware, and log levels in a single map to route logs to console, files, or custom systems without XML or properties files.

Can I use different log levels for development and production environments?

Yes. Timbre supports configurable log levels and multiple appenders, allowing you to output detailed debug messages to the console during development while simultaneously sending only warnings and errors to production log files with custom routing per environment.

How do I handle exceptions and errors in Clojure logging?

Timbre includes built-in exception reporting capabilities alongside flexible appenders and middleware that transform log data on the fly. You can route errors to multiple destinations—console, files, or email notifications—all configured from a single Clojure map.

Does Clojure logging work with both server and client applications?

Yes. Timbre supports both server and client contexts, including ClojureScript, with a dependency-free configuration model. This enables consistent logging across full-stack Clojure applications with pluggable appenders and optional interop with tools.logging and SLF4J.

What's the best way to optimize logging performance in high-volume applications?

Timbre offers compile-time elision, asynchronous logging, and rate limiting to manage performance and log volume effectively. These features allow you to maintain detailed logging without degrading application performance under load.

Can I route logs to multiple destinations simultaneously?

Yes. Timbre's flexible appenders architecture enables routing logs to multiple destinations—console, files, email, or custom systems—all controlled through function-based appenders and middleware defined in your configuration.