{"action":"created","issue":{"url":"https://api.github.com/repos/ptaoussanis/timbre/issues/97","labels_url":"https://api.github.com/repos/ptaoussanis/timbre/issues/97/labels{/name}","comments_url":"https://api.github.com/repos/ptaoussanis/timbre/issues/97/comments","events_url":"https://api.github.com/repos/ptaoussanis/timbre/issues/97/events","html_url":"https://github.com/ptaoussanis/timbre/issues/97","id":64550618,"number":97,"title":"Handlers?","user":{"login":"clojens","id":3727933,"avatar_url":"https://avatars.githubusercontent.com/u/3727933?v=3","gravatar_id":"","url":"https://api.github.com/users/clojens","html_url":"https://github.com/clojens","followers_url":"https://api.github.com/users/clojens/followers","following_url":"https://api.github.com/users/clojens/following{/other_user}","gists_url":"https://api.github.com/users/clojens/gists{/gist_id}","starred_url":"https://api.github.com/users/clojens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clojens/subscriptions","organizations_url":"https://api.github.com/users/clojens/orgs","repos_url":"https://api.github.com/users/clojens/repos","events_url":"https://api.github.com/users/clojens/events{/privacy}","received_events_url":"https://api.github.com/users/clojens/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-03-26T15:06:59Z","updated_at":"2015-03-26T16:42:28Z","closed_at":"2015-03-26T16:42:28Z","body":"I was wondering, and couldn't really find anything about it so figured I would just ask/request the old fashioned way, but does timbre have something like handlers?\r\n\r\nThis since I was using https://github.com/MichaelDrogalis/dire and I really like to concept of the clean separation of concerns as applied in pre- and post-condition handlers. This cleans up functions real nicely (as I use `load` and `in-ns` especially since I can store all fault tolerance fn hooks/handlers in one file and load it at the end). One of those things left, that *do* keep code a tad more messy than I'd favor, are logging calles.\r\n\r\nI just had the impression that this might be something of an approach really suitable for a logging library as well. If not, it is something I will probably look into further but thought posting something here would make a nice start of reconnaissance on the subject.\r\n\r\nThoughts? Any familiar terrain I'm crossing here, or already implemented? I'd love to hear...\r\n\r\nCheers,\r\n\r\nRob "},"comment":{"url":"https://api.github.com/repos/ptaoussanis/timbre/issues/comments/86612955","html_url":"https://github.com/ptaoussanis/timbre/issues/97#issuecomment-86612955","issue_url":"https://api.github.com/repos/ptaoussanis/timbre/issues/97","id":86612955,"user":{"login":"clojens","id":3727933,"avatar_url":"https://avatars.githubusercontent.com/u/3727933?v=3","gravatar_id":"","url":"https://api.github.com/users/clojens","html_url":"https://github.com/clojens","followers_url":"https://api.github.com/users/clojens/followers","following_url":"https://api.github.com/users/clojens/following{/other_user}","gists_url":"https://api.github.com/users/clojens/gists{/gist_id}","starred_url":"https://api.github.com/users/clojens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clojens/subscriptions","organizations_url":"https://api.github.com/users/clojens/orgs","repos_url":"https://api.github.com/users/clojens/repos","events_url":"https://api.github.com/users/clojens/events{/privacy}","received_events_url":"https://api.github.com/users/clojens/received_events","type":"User","site_admin":false},"created_at":"2015-03-26T16:42:28Z","updated_at":"2015-03-26T16:42:28Z","body":"Note: I did _just_ learn about `agents` and `send`. Those do cover some of the essence I'm trying to capture (I guess it's about as much as observer/listener/publisher pattern in that sense) but they work on mutable state (read: atom, ref) and not so much hook to fns. Anyway I just figured I could just as easily place a large amount of logging (info, what not) calls inside the \"dire\" file with the exception handling and/or graceful fallbacks (in the pre- and post-conditions) since those should match expected and unexpected situations anyway. Just need those refined to closely (or as close as) match the possible outcomes."}}