Show HN: Timberlogs – Drop-in structured logging for TypeScript

Hi HN! I built Timberlogs because I was tired of console.log in production and existing logging solutions requiring too much setup.

Timberlogs is a drop-in structured logging library for TypeScript:

    npm install timberlogs-client

    import { createTimberlogs } from "timberlogs-client";
    
    const timber = createTimberlogs({
      source: "my-app",
      environment: "production",
      apiKey: process.env.TIMBER_API_KEY,
    });
    
    timber.info("User signed in", { userId: "123" });
    timber.error("Payment failed", error);
Features: - Auto-batching with retries - Automatic redaction of sensitive data (passwords, tokens) - Full-text search across all your logs - Real-time dashboard - Flow tracking to link related logs

It's currently in beta and free to use. Would love feedback from the HN community.

Site: https://timberlogs.dev Docs: https://docs.timberlogs.dev npm: https://npmjs.com/package/timberlogs-client GitHub: https://github.com/enaboapps/timberlogs-typescript-sdk

9 points | by enaboapps 2 days ago

6 comments

  • ramon156 14 minutes ago
    > I was tired of console.log in production and existing logging solutions requiring too much setup.

    Not only that, libs like pino don't even support spanning, something that's pretty important for how I use logging. Winston has been my favorite so far.

    Anyway, this is just a SaaS that claims they offer a "drop-in" library, which it does not. The repo is also Claude-generated, so I'm out.

    Website is also very broken, and the docs require a log-in.

  • coronapl 2 days ago
    I'm glad to see useful features like easily adding userId and sessionId to logs. That said, I wish it wasn't limited to just these properties. From my experience building enterprise SaaS, you need more metadata for proper filtering: tenantId, operation, and others. With Winston, I typically create child logger instances and pass them around to ensure all logs contain the right metadata, but that workflow is pretty annoying.

    Quick question out of curiosity: why does the example include an API key when initializing the logger? I couldn't find an explanation on the GitHub page. Some people might be put off seeing that in the first example, thinking the logger requires a paid subscription.

  • uallo 1 hour ago
    Does this provide a transport plugin for Winston [1], Pino [2], etc.?

    [1] https://github.com/winstonjs/winston

    [2] https://github.com/pinojs/pino

    PS: Your documentation search does not work.

  • willwade 2 days ago
    this is so cool. I think so much of the logging Saas products are bloated. This looks much simpler. I'd like a python interface.. I've used papertrail and datadog for some of this in the past but dropped it due to cost (and bloat). Nice one.
  • gokaygurcan 1 hour ago
    Do you have a price range in mind?
  • willwade 2 days ago
    how did you redact the sensitive data? did you use a library for that?