Commit Graph

288 Commits

Author SHA1 Message Date
Peter Taoussanis 6218048a42 misc hk 2013-12-20 16:33:40 +07:00
Peter Taoussanis ef921d5662 hk: remove unnecessary check against `format` msg args 2013-12-19 17:16:42 +07:00
Peter Taoussanis b766013031 Fix namespace filtering (mlb-) 2013-12-17 15:45:09 +07:00
Peter Taoussanis 9fc1d0d8c1 Merge branches 'master' and 'dev' of github.com:ptaoussanis/timbre into dev 2013-12-06 12:37:24 +07:00
megayu 64937ffbc6 rename daily to rolling 2013-12-06 11:31:23 +08:00
megayu f330773bdd add daily rolling file appendar 2013-12-05 17:01:32 +08:00
Peter Taoussanis a0d305f6c2 Postal appender now uses UTF-8 charset by default 2013-12-04 14:41:39 +07:00
Peter Taoussanis e0a9a08b6b Level checks hk, fix compile-time logging level (prepor) 2013-12-04 12:36:34 +07:00
Peter Taoussanis b21d5c3d6c hk 2013-12-04 12:36:34 +07:00
Peter Taoussanis 2c53586e65 Carmine appender: better handling when logging unfreezable args (needs Nippy v2.5.1+) 2013-12-04 12:36:18 +07:00
Peter Taoussanis 38d1c81dd1 Postal appender: allow control of email content-type, etc. 2013-12-04 12:36:18 +07:00
Peter Taoussanis 23d7b775c2 Carmine appender: fix entry hash fetching for empty level logs 2013-12-04 12:36:17 +07:00
Peter Taoussanis a547674bc2 Message formatting: don't call `format` unless formatting args are provided 2013-12-04 12:36:17 +07:00
Peter Taoussanis a7fbaf087a `make-timestamp-fn` is now public 2013-12-04 12:36:17 +07:00
Peter Taoussanis 40a3e58545 Pull default fmt-output-fn out of config (useful in custom reporting, etc.) 2013-12-02 16:12:24 +07:00
Peter Taoussanis 2a303ef2af Carmine appender: reconstitute :instant as Date rather than Long 2013-12-02 16:01:48 +07:00
Peter Taoussanis 8e5329e79f Add unified arg hashing (rate limiter, Carmine appender, etc.) 2013-12-01 22:33:40 +07:00
Peter Taoussanis 136d3553ba Carmine appender: add configurable hash fn 2013-12-01 20:04:14 +07:00
Peter Taoussanis 05326dcfae misc hk 2013-12-01 20:03:37 +07:00
Peter Taoussanis 28e5490480 Fix: `(log nil)` should work as 'never log' 2013-12-01 20:03:37 +07:00
Peter Taoussanis 29113cc203 Update README 2013-12-01 20:03:37 +07:00
Peter Taoussanis 16d2345367 Add tools.logging dep for codox generation 2013-12-01 20:03:37 +07:00
Peter Taoussanis 3dc9d6522b `example-config` docstring hk 2013-12-01 20:03:37 +07:00
Peter Taoussanis d75a2db4dd Clean up postal appender, add new Carmine (Redis) appender 2013-12-01 20:03:37 +07:00
Peter Taoussanis f04aba6e0d Add new appender opt: `:appender-fmt-output-opts` 2013-12-01 20:03:36 +07:00
Peter Taoussanis f83b417cb0 Add `stacktrace` option to control aviso-ex fonts 2013-12-01 20:03:36 +07:00
Peter Taoussanis d8178eca16 nb - add explicit config support to `log`, `logf` macros 2013-12-01 20:03:36 +07:00
Peter Taoussanis 706f16b11c postal appender: use first 150 chars as subject 2013-12-01 20:03:36 +07:00
Peter Taoussanis 5ac604d66d Improve appender rate limiting: now specified as ncalls / window-msecs 2013-12-01 20:03:36 +07:00
Peter Taoussanis 39e568f4fc utils: add `rate-limit` fn 2013-12-01 20:03:36 +07:00
Peter Taoussanis 94a2d4d687 utils hk 2013-12-01 20:03:36 +07:00
Peter Taoussanis 413b2fd529 nb - major refactor (see commit msg for details)
CHANGES
 * DEPRECATED: `red`, `green`, `blue` -> use `color-str` instead.
 * Logging level is now located in `level-atom` rather than `config`.
   This is in prep for new config types. Old in-config levels will be
   respected (i.e. change is backwards compatible).
 * DEPRECATED: config `prefix-fn` has been replaced by the more flexible
   `fmt-output-fn`. Change is backwards compatible.
 * Built-in appenders have been simplified using the new `default-output`
   appender arg.
 * Per-appender `:prefix` option dropped - was unnecessary. If an appender
   wants custom output formatting, it can do so w/o using an in-config
   formatter.

FIXES
 * Messages are now generated _after_ middleware has been applied, allowing
   better filtering performance and more intuitive behaviour (e.g. changes
   to args in middleware will now automatically percolate to message content).
2013-12-01 20:03:36 +07:00
Peter Taoussanis c094f299a5 stacktraces: `clj-stacktrace`->`io.aviso.exception` for stacktrace printing 2013-12-01 20:03:36 +07:00
Peter Taoussanis fb1cc1620b misc hk 2013-12-01 20:03:36 +07:00
Peter Taoussanis f2e18925b2 hk: update `refer-timbre` (notably add profiling stuff) 2013-12-01 20:03:36 +07:00
Peter Taoussanis 383e52aac1 Fix: broken namespace filter (mlb-) 2013-12-01 20:03:35 +07:00
Peter Taoussanis 71712fff5f Housekeeping: ccb5b3e (Android appender) 2013-12-01 20:03:35 +07:00
Adam Clements 1df74f9ab1 Android appender 2013-11-08 18:14:21 +00:00
Peter Taoussanis 2f51612c20 Utils: drop (deprecated) `frequencies` 2013-11-08 21:55:05 +07:00
Peter Taoussanis 1f15c046e0 Utils: update `memoize-ttl` 2013-11-08 21:54:12 +07:00
Peter Taoussanis e48128c6d6 Profiling: housekeeping, fix `defnp` for multi-form bodies 2013-11-06 20:44:43 +07:00
Peter Taoussanis b0fef3d5ce core: don't run getHostName on the main thread (AdamClements) 2013-11-06 15:47:10 +07:00
Peter Taoussanis 1157a0e97c profiling: add `defnp` macro 2013-11-06 15:47:10 +07:00
mopemoepe 33fbbb9c98 Add Simple Rotating File Appender 2013-10-24 09:53:56 +09:00
Peter Taoussanis de9d1b001e Housekeeping 2013-10-22 13:29:23 +07:00
aperiodic 411d16ed1f Fix profiling keyword construction.
Allow for dynamic keywords constructed from runtime data.

Prefix unqualified keywords with the namespace they are used in, rather
than 'taensso.timbre.profiling.
2013-10-21 15:59:20 -07:00
Peter Taoussanis a6f287fe38 Merge pull request #27 from ticking/stdout-atomicity
Fix `str-println` newline
2013-09-25 01:13:21 -07:00
Jan-Paul Bultmann 168ba46c24 Restores the standard-out appender's thread safety.
Since commit 71218f7086 `str-println`
no longer prints the newline with the other output, this is restored.
2013-09-12 18:50:43 +02:00
Chiao 1d592b85cb fixed timbre.tools.logging/use-timbre 2013-09-10 11:09:59 +00:00
Peter Taoussanis a6ecb2c1e6 Make ns-filter runtime again
The compile-time filtering can trip up in surprising ways, and doesn't
work with tools.logging.

This commit switches back to a runtime ns filter which is a teeny, tiny
bit slower - but always predictable.
2013-08-22 21:58:27 +07:00
Peter Taoussanis 4cc5bf3b47 Make ns-filter check compile-time, add optional compile-time logging-level 2013-08-21 14:00:08 +07:00
Peter Taoussanis bad95553c2 Mark `taoensso.timbre.frequencies` ns as deprecated 2013-08-20 22:42:19 +07:00
Peter Taoussanis 77beb18032 Refactor log macro implementations 2013-08-07 23:44:35 +07:00
Peter Taoussanis fd03c042e9 Disable `:line` appender arg (broken) 2013-08-07 22:07:44 +07:00
Peter Taoussanis 718f38c462 Make `make-timestamp-fn` thread safe (thanks to jarppe for report) 2013-08-07 12:44:37 +07:00
Peter Taoussanis 382f9d4f9a Add :file and :line appender args (thanks to jarppe for suggestion) 2013-08-07 12:18:46 +07:00
Peter Taoussanis 8789358c7d Extend `refer-timbre` to `logf` macros 2013-07-30 20:50:36 +07:00
Peter Taoussanis 2d38d2a970 Add output pattern TODO 2013-07-23 21:38:05 +07:00
Peter Taoussanis 545c278394 Allow `fspy` to capture freq for exception-throwing bodies 2013-07-23 14:43:14 +07:00
Peter Taoussanis ce4c9c34de Use Throwable as Postal appender subject when no other args given 2013-07-22 22:41:15 +07:00
Peter Taoussanis ddd9e18d8e Clean up `spy` error logging, catch Throwables for `log-errors`, `log-and-rethrow-errors` 2013-07-22 22:41:15 +07:00
Peter Taoussanis 853807df4c Housekeeping 2013-07-22 22:21:49 +07:00
Peter Taoussanis 758c370ac7 Deprecate `logp`, `s` 2013-07-22 22:21:07 +07:00
Peter Taoussanis b510633f03 Add `refer-timbre` 2013-07-22 17:53:36 +07:00
Peter Taoussanis 07fdddf2f2 NB: Fix v2.3.2 regression 2013-07-21 17:32:18 +07:00
Peter Taoussanis 62ed4086ea Wrap 95109b7 body expansion in `(do)` for hygiene 2013-07-20 22:23:34 +07:00
Peter Taoussanis 7961a8d807 Make `log` an alias for `logp` 2013-07-20 15:15:49 +07:00
Peter Taoussanis 95109b7451 Allow `pspy` to capture time for exception-throwing bodies (thanks Jacek Lach) 2013-07-20 00:39:44 +07:00
Peter Taoussanis 807cb40e0f Housekeeping: profiling & freqs 2013-07-20 00:39:44 +07:00
Peter Taoussanis ce9ea0ac76 Add `with-log-level` for thread-local logging levels 2013-07-10 13:45:31 +07:00
Peter Taoussanis 0945b83009 Housekeeping: rename `utils/deep-merge` -> `utils/merge-deep` 2013-07-06 00:54:25 +07:00
Peter Taoussanis 634223bdbc Merge branch 'mongo' of github.com:emlyn/timbre into emlyn-mongo 2013-06-27 15:06:08 +07:00
Emlyn Corrin b7ec7ae71b Remove restriction on :throwable, default to all but :ap-config 2013-06-26 18:02:09 +01:00
Peter Taoussanis 25cc163c34 Tweak README 2013-06-22 17:43:56 +07:00
Peter Taoussanis f3d704bc45 Merge pull request #18 from emlyn/socket
TCP Socket Appender (emlyn)
2013-06-14 20:37:42 -07:00
Peter Taoussanis 71218f7086 Allow no-message throwable logging, use `str` for ex-data printing 2013-06-07 20:45:33 +07:00
Peter Taoussanis 5d4e5f2739 Fix ex-data separator 2013-06-07 20:22:00 +07:00
Peter Taoussanis eaa4495e49 Add `ex-data` output to `stacktrace` fn 2013-06-07 20:15:07 +07:00
Emlyn Corrin 7cfae88eb3 Add more default keys, allow setting write-concern 2013-06-05 18:19:18 +01:00
Emlyn Corrin e7bf5015e9 Make threads daemons to not block shutdown, add stacktrace, default to localhost only but allow :all 2013-06-05 16:45:59 +01:00
Peter Taoussanis 912dfb46d0 Fix: `log*` return value should be `nil`, not `true` 2013-06-05 20:16:29 +07:00
Emlyn Corrin 6dac0ec03e Add socket appender 2013-06-05 13:52:23 +01:00
Emlyn Corrin fff4a85b5d Add MongoDB appender 2013-06-05 13:06:11 +01:00
Peter Taoussanis 7b09d1a562 BREAKING: Refactor Timbre for integration with clojure.tools.logging & logf macros
BREAKING CHANGES:
* Custom appenders that rely on the :more argument will no longer function correctly.
* Stacktraces are no longer automatically generated at the `log`-macro level, but are
left as an appender implementation detail. A :throwable appender argument has been added
along with a `stacktrace` fn.

MIGRATION GUIDE:
* :message is now a string of all arguments as joined by `logp`/`logf`. Appenders that
need unjoined logging arguments (i.e. raw arguments as given to `logp`/`logf`) should
use the new :log-args vector.

MOTIVATION:
The :more argument was always kind of manky.

By joining logging arguments at the `log`-macro level, we simplify appender
implementations and allow the use of different joining strategies like `logp` and
`logf`.

This approach also fits better with the `tools.logging` API, allowing a cleaner
Logger implementation.
2013-06-01 19:29:57 +07:00
Peter Taoussanis 6fc6baee37 Rename appender argument: :max-message-per-msecs -> :limit-per-msecs (backwards compatible) 2013-06-01 19:29:57 +07:00
Peter Taoussanis c30ae5fbcc Housekeeping 2013-06-01 19:29:57 +07:00
Peter Taoussanis 7c29ce6852 Clean up appender documentation 2013-06-01 19:29:57 +07:00
Emlyn Corrin 0d1dfe6259 Remove extra newline for nicer diff 2013-04-20 08:55:05 +01:00
Emlyn Corrin 3302d17af6 Per-appender prefix-fns 2013-04-19 18:01:55 +01:00
Emlyn Corrin 48f8329dbb Add IRC appender 2013-04-19 14:28:02 +01:00
Peter Taoussanis 0dc4951db7 Fix EvalReader exception when *read-eval* is false (thanks ummels) 2013-04-14 16:30:19 +07:00
Peter Taoussanis 7935493a22 Remove unnecessary `set-config!` destructuring 2013-03-17 14:40:32 +07:00
Peter Taoussanis 03d2c0c242 nil logging level should be < :trace logging level 2013-03-16 14:30:05 +07:00
Peter Taoussanis 5864673b47 Housekeeping 2013-03-16 14:30:05 +07:00
Peter Taoussanis 17043d20b7 Catch UnknownHostException 2013-02-11 11:47:24 +07:00
Peter Taoussanis 27388879a4 Fix: remove `mapv` use in frequencies.clj (requires Clojure 1.4+) 2013-02-08 14:21:22 +07:00
Peter Taoussanis ff5ce760cf Housekeeping 2013-02-07 20:27:17 +07:00
Peter Taoussanis c7d59a570b Add experimental logging frequency counter (`utils/frequencies.clj`) 2013-02-07 18:11:46 +07:00
Peter Taoussanis 3258023105 Refactor profiling ns 2013-02-07 18:09:41 +07:00
Peter Taoussanis 9454e0f4ab Add `logged-future` 2013-02-06 00:37:12 +07:00
Peter Taoussanis 6c359427d9 Use ns as part of flood control message disambiguator 2013-02-05 23:35:14 +07:00
Peter Taoussanis 4184491719 Add middleware support, refactor appender decoration
* Appenders are now decorated via 2 separate mechanisms: a per-appender
  decorator (as before), and a new per-juxt (i.e. combined) decorator.
  The per-juxt wrapping provides a performance-conscious hook for
  higher-level facilities like the new middleware feature.

* Moved compile-time config wrapping from per-appender to per-juxt,
  improving performance.

* Fixed appender wrapper ordering.
2013-02-05 20:05:42 +07:00
Peter Taoussanis 210fe39b37 Add `spy` alias 2013-02-03 01:10:00 +07:00
Peter Taoussanis bbbaf036b5 Fix: `spy` double-evaluation 2013-02-03 01:10:00 +07:00
Peter Taoussanis a7b41a6f2d Add `middleware` dev notes 2013-02-03 00:55:23 +07:00
Peter Taoussanis 3c211afe62 Housekeeping 2013-01-29 16:57:28 +07:00
Peter Taoussanis 75778694ff Add `with-default-outs`, `with-err-as-out`, `log-errors`, `log-and-rethrow-errors` 2013-01-29 16:49:42 +07:00
Peter Taoussanis b1d60d1bee Swap `utils/round-to` arg order 2013-01-24 21:58:28 +07:00
Peter Taoussanis 222be9d48e Add `merge-config!` 2013-01-04 14:50:28 +07:00
Peter Taoussanis f23b59119d Update `utils/deep-merge-with` 2013-01-04 14:42:29 +07:00
Peter Taoussanis d8b35e14cc Label stacktraces in output 2013-01-03 23:37:18 +07:00
Peter Taoussanis d13b870799 Add string color utils 2013-01-03 23:37:18 +07:00
Peter Taoussanis 7c81fc58de Fix `config` docstring 2012-12-28 14:12:53 +07:00
Peter Taoussanis b6b447ca9a Print seconds to 1 decimal place 2012-12-16 19:22:10 +07:00
Peter Taoussanis b07c044004 Distinguish between wall-clock and accounted times 2012-12-16 19:03:11 +07:00
Peter Taoussanis d6bc6b2947 Rename 'total'->'time' 2012-12-16 18:45:01 +07:00
Peter Taoussanis fc51884472 Refactor valid logging-level checks, support non-const logging levels
The `assert-valid-logging-level` macro had the unfortunate side effect of
preventing the use of runtime-evaluated logging-levels.

To get around this without impacting performance, `assert-valid-logging-level`
has been removed and the validty checking moved to the (memoized) level
comparator.

This is cleaner, more flexible, and no slower.
2012-10-26 16:24:42 +07:00
Peter Taoussanis 92e31c7b7c Add simple file spit appender 2012-10-19 15:26:54 +07:00
Peter Taoussanis dc995c10ad Add `utils/deep-merge` 2012-10-19 15:05:24 +07:00
Peter Taoussanis 5750fc7c8b Fix `ap-config` bug 2012-10-19 15:04:42 +07:00
Peter Taoussanis ad2dad1156 Housekeeping 2012-10-19 15:02:35 +07:00
Peter Taoussanis c05b7ca392 Allow explicit naming of `spy` forms 2012-09-21 21:02:58 +07:00
Peter Taoussanis edf2a13817 Housekeeping 2012-09-02 00:02:06 +07:00
Peter Taoussanis f58442f355 BREAKING: Clean up config structure. Add prefix-fn option.
Changes to config structure:
* [:shared-appender-config :timestamp-pattern] -> :timestamp-pattern
* [:shared-appender-config :locale]            -> :timestamp-locale
* Add :prefix-fn

Motivation: timestamp options aren't actually config intended for
appenders. Having them in :shared-appender-config was unnecessarily
confusing.

The addition of :prefix-fn allows full control of prefix strings in a
way that carries over automatically to all appenders. Previously,
adjusting prefix text required modifying appender fns.

Changes to default appenders:
* Drop [:appenders :standard-out]
* [:appenders :standard-out-or-err] -> [:appenders :standard-out]

Motivation: the :standard-out-or-err appender was already the default
anyway, and the presence of the :standard-out appender was just
confusing.
2012-07-26 22:39:21 +07:00
Peter Taoussanis 83c8ff19f7 Add utils ns. Add hostname to default prefix fn. 2012-07-26 15:18:49 +07:00
Peter Taoussanis ba78e67902 CONFIG CHANGE: Bump aggressiveness of Postal appender's default rate-limiter. 2012-07-23 21:10:01 +07:00
Peter Taoussanis cca1141c7f BREAKING: Moved Postal appender to own ns and no longer automatically include Postal as dependency.
All future appenders that depend on an external library will follow this pattern, allowing the
flexibility to add more diverse appenders without the worry of bloating Timbre core or Timbre's
dependencies.

See updated README example for how to include standard email appender.
2012-07-13 17:32:23 +07:00
Peter Taoussanis 6807e2b6bd `str-println` now flushes *out* (Marek Srank). 2012-07-13 16:22:54 +07:00
Peter Taoussanis 068d9bf248 Use `defonce` instead of `def` for config. 2012-07-12 16:33:21 +07:00
Peter Taoussanis f454ac9afb Clarified example Postal config. 2012-07-11 13:28:23 +07:00
Peter Taoussanis d429ccc646 MAD test. 2012-07-05 16:48:14 +07:00
Peter Taoussanis 19f7b898e3 Added Mean Absolute Deviation (MAD) times to profiling output. Misc housekeeping. 2012-07-05 16:39:44 +07:00
Peter Taoussanis 123f3c51d9 Added unaccounted-for timer. Fixed bug with :mean overflow. 2012-07-03 21:16:07 +07:00
Peter Taoussanis 0cb368a0d9 Updated README. Fixed profiler typos. Some other housekeeping. 2012-07-03 19:46:05 +07:00
Peter Taoussanis bf7c9ff0f6 Cleaned up profiling table display. 2012-07-03 16:54:15 +07:00
Peter Taoussanis aaca1aac5d Added timbre.profiling as merge from abandoned Touchstone library. 2012-07-03 16:32:08 +07:00
Peter Taoussanis 0177e7236b Added ns filtering, `logging-enabled`. Misc housekeeping. 2012-07-03 16:29:11 +07:00
Peter Taoussanis cfc2a60c8e BREAKING: New ns structure. 2012-07-03 16:27:20 +07:00