1. 19 Jan, 2016 1 commit
  2. 15 Apr, 2015 1 commit
  3. 22 Jan, 2015 3 commits
  4. 17 Dec, 2014 1 commit
  5. 11 Feb, 2014 1 commit
  6. 24 Jan, 2014 1 commit
  7. 02 Sep, 2013 1 commit
  8. 13 Aug, 2013 1 commit
  9. 19 Apr, 2013 1 commit
  10. 09 Apr, 2013 1 commit
    • Pedram Nimreezi's avatar
      Implement event stream processing · 95b3fb0c
      Pedram Nimreezi authored
      Adds transparent event stream processing and statistics.
      A new 3-tuple trace is introduced as `{Key, Op, Value}`, but
      for backwards compatibility `{Key, Val}` implies `=` for `Op`
      and `{Key, '*'}` remains as is in the case of wildcards.
      A simplified query tree module is generated which reduces
      redundant selection conditions to minimize filtering overhead.
      95b3fb0c
  11. 16 Mar, 2013 1 commit
    • Andrew Thompson's avatar
      Improve the performance of the file backend · 79ea55a1
      Andrew Thompson authored
      This is done via a combination of several things:
      * Make the loglevel that triggers a sync configurable
      * Make the delayed_write size and intervals configurable
      * Make the interval at which external rotation is checked for
        configurable
      * Store the timestamp a lager_msg was created inside the lager_msg
      
      To support these changes, several other things had to be modified:
      * lager_msg:timestamp now returns a timestamp
      * lager_msg:datetime was added to return the {date, time} of a message,
        like lager_msg:timestamp used to
      * The configuration syntax for file backends was changed to be of the
        form {lager_file_backend, proplist()} and the old syntax was
        deprecated
      
      Additionally, the defaults for the check_interval was raised from
      'always' to 1 second, and the sync_interval was changed from 2 seconds
      to one second.
      79ea55a1
  12. 15 Mar, 2013 2 commits
    • Andrew Thompson's avatar
      Allow storage of persistant per-process lager metadata · 98143ae1
      Andrew Thompson authored
      For persistant processes with some immutable metadata (riak vnode and
      the vnode ID, for example), implement lager:md/0 and lager:md/1 for
      getting/setting such metadata into the process dictionary.
      
      Such metadata is automatically included in any lager message metadata,
      so you can just set it in your init() function or whatever and not have
      to worry about passing the data around and using it in every lager call.
      98143ae1
    • Andrew Thompson's avatar
      In code generated by the parse_transform skip unloggable messages fast · a454d1f2
      Andrew Thompson authored
      Originally an idea that Dizzy forwarded to me from Tony Rogvall.
      Basicially all the work lager does gathering metadata and stuff is
      wrapped in a case statement that fails-fast if the message is definitely
      not going to be logged; the severity isn't currently being consumed and
      there's no traces installed.
      
      In my simple test, logging 1 million debug messages, when the debug
      level is not being consumed, goes from taking 2.99 seconds to 1.21
      seconds with this change.
      
      Also, lager pre 1.0 actually had something similar to this, but it was
      removed during a refactor and never re-added.
      a454d1f2
  13. 14 Mar, 2013 1 commit
  14. 13 Mar, 2013 1 commit
  15. 08 Mar, 2013 1 commit
    • Andrew Thompson's avatar
      Switch between gen_event notify/sync_notify based on message queue length · cf89804c
      Andrew Thompson authored
      In normal operation, there's no need for log messages to be synchronous.
      Its slower and introduces a global serialization point in the
      application.
      
      However, when in an overload condition, synchronous logging is good
      because it limits each process to at most 1 log message in flight.
      
      So, this change allows the gen_event at the core of lager to switch
      modes depending on the size of the gen_event's mailbox. It should
      provide better performance in the case of normal load, but it will also
      prevent unbounded mailbox growth if an overload occurs.
      
      The threshold at which the switch between async and sync is done is
      configured via the 'async_threshold' app env var.
      cf89804c
  16. 05 Mar, 2013 1 commit
    • Ewan Mellor's avatar
      Bring some duplicate code together around the loglevel handling. · 228f2b98
      Ewan Mellor authored
      Add add_trace_to_loglevel_config and update_loglevel_config.  These two
      handle most of the updates to the loglevel config item, including the
      update of the overall logging mask.
      
      This makes minimum_loglevel private.
      
      This doesn't change any behavior -- it just a tidy-up.
      228f2b98
  17. 21 Dec, 2012 1 commit
  18. 20 Dec, 2012 2 commits
  19. 13 Dec, 2012 1 commit
  20. 12 Dec, 2012 1 commit
  21. 05 Dec, 2012 1 commit
  22. 30 Nov, 2012 1 commit
  23. 28 Nov, 2012 1 commit
  24. 14 Nov, 2012 1 commit
  25. 25 Oct, 2012 1 commit
  26. 19 Oct, 2012 1 commit
  27. 26 Sep, 2012 2 commits
  28. 25 Sep, 2012 2 commits
  29. 28 Aug, 2012 3 commits
  30. 16 May, 2012 1 commit
  31. 23 Apr, 2012 1 commit
  32. 20 Apr, 2012 1 commit