Giter Club home page Giter Club logo

Comments (6)

vemv avatar vemv commented on September 21, 2024 2

Thanks! I hadn't realised that.

I might also PR some Sentry-related improvements at some point.

Cheers - V

from timbre.

ptaoussanis avatar ptaoussanis commented on September 21, 2024 1

@vemv Great! Just ping if you'd like an actual working example 👍

@NoahTheDuke Thanks for your help on this, your advice re: (fn [data]) -> ?data was fundamentally correct 👍

from timbre.

NoahTheDuke avatar NoahTheDuke commented on September 21, 2024

I believe if a middleware returns nil, then nothing is printed. See Architecture on the wiki, step 4: "Pass the data map through any middleware fns: (fn [data]) -> ?data. These may transform the data. If returned data is nil, end here and noop."

As an example, I have this in a test fixture, to not do any logging when testing our authorization endpoints:

(defn silence-auth-logs
  [f]
  (timbre/with-config
    (update timbre/*config* :middleware conj
            (fn [data]
              (when-not (str/includes? (or (first (:vargs data)) "") "Incorrect authorization")
                data)))
    (f)))

from timbre.

vemv avatar vemv commented on September 21, 2024

But what if I have N appenders and I just want to drop it for Sentry?

That's the essence of my question.

from timbre.

NoahTheDuke avatar NoahTheDuke commented on September 21, 2024

Oh, my apologies. I missed that you meant a single appender of many. I'm not sure that answer.

from timbre.

ptaoussanis avatar ptaoussanis commented on September 21, 2024

Just have my hands a bit full atm, so apologies for the brief answer-

Timbre's appenders are ultimately just normal Clojure functions, so you can easily wrap them with whatever behaviour you like.

I.e. you can basically implement appender-specific "middleware" by hand - just wrap the handler function you want with something like this:

(fn my-wrapped-handler [data] (when (:?err data) (actual-handler data)))

Will check back tomorrow in case you need more details!

from timbre.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.