0.4.0 (2019-12-02)
- Add support for coroutine functions used as sinks and add the new
logger.complete()
asynchronous method toawait
them (#171). - Add a way to filter logs using one level per module in the form of a
dict
passed to thefilter
argument (#148). - Add type hints to annotate the public methods using a
.pyi
stub file (#162). - Add support for
copy.deepcopy()
of thelogger
allowing multiple independent loggers with separate set of handlers (#72). - Add the possibility to convert
datetime
to UTC before formatting (in logs and filenames) by adding"!UTC"
at the end of the time format specifier (#128). - Add the level
name
as the first argument of namedtuple returned by the.level()
method. - Remove
class
objects from the list of supported sinks and restrict usage of**kwargs
in.add()
to file sink only. User is in charge of instantiating sink and wrapping additional keyword arguments if needed, before passing it to the.add()
method. - Rename the
logger.configure()
keyword argumentpatch
topatcher
so it better matches the signature oflogger.patch()
. - Fix incompatibility with
multiprocessing
on Windows by entirely refactoring the internal structure of thelogger
so it can be inherited by child processes along with added handlers (#108). - Fix
AttributeError
while using a file sink on some distributions (like Alpine Linux) missing theos.getxattr
andos.setxattr
functions (#158, thanks @joshgordon). - Fix values wrongly displayed for keyword arguments during exception formatting with
diagnose=True
(#144). - Fix logging messages wrongly chopped off at the end while using standard
logging.Handler
sinks with.opt(raw=True)
(#136). - Fix potential errors during rotation if destination file exists due to large resolution clock on Windows (#179).
- Fix an error using a
filter
function "by name" while receiving a log withrecord["name"]
equals toNone
. - Fix incorrect record displayed while handling errors (if
catch=True
) occurring because of non-picklable objects (ifenqueue=True
). - Prevent hypothetical
ImportError
if a Python installation is missing the built-indistutils
module (#118). - Raise
TypeError
instead ofValueError
when alogger
method is called with argument of invalid type. - Raise
ValueError
if the built-informat()
andfilter()
functions are respectively used asformat
andfilter
arguments of theadd()
method. This helps the user to understand the problem, as such a mistake can quite easily occur (#177). - Remove inheritance of some record dict attributes to
str
(for"level"
,"file"
,"thread"
and"process"
). - Give a name to the worker thread used when
enqueue=True
(#174, thanks @t-mart).
0.3.2 (2019-07-21)
- Fix exception during import when executing Python with
-s
and-S
flags causingsite.USER_SITE
to be missing (#114).
0.3.1 (2019-07-13)
- Fix
retention
androtation
issues when file sink initiliazed withdelay=True
(#113). - Fix
"sec"
no longer recognized as a valid duration unit for filerotation
andretention
arguments. - Ensure stack from the caller is displayed while formatting exception of a function decorated with
@logger.catch
whenbacktrace=False
. - Modify datetime used to automatically rename conflicting file when rotating (it happens if file already exists because
"{time}"
not presents in filename) so it's based on the file creation time rather than the current time.
0.3.0 (2019-06-29)
- Remove all dependencies previously needed by
loguru
(on Windows platform, it solely remainscolorama
andwin32-setctime
). - Add a new
logger.patch()
method which can be used to modify the record dict on-the-fly before it's being sent to the handlers. - Modify behavior of sink option
backtrace
so it only extends the stacktrace upward, the display of variables values is now controlled with the newdiagnose
argument (#49). - Change behavior of
rotation
option in file sinks: it is now based on the file creation time rather than the current time, note that proper support may differ depending on your platform (#58). - Raise errors on unknowns color tags rather than silently ignoring them (#57).
- Add the possibility to auto-close color tags by using
</>
(e.g.<yellow>message</>
). - Add coloration of exception traceback even if
diagnose
andbacktrace
options areFalse
. - Add a way to limit the depth of formatted exceptions traceback by setting the conventional
sys.tracebacklimit
variable (#77). - Add
__repr__
value to thelogger
for convenient debugging (#84). - Remove colors tags mixing directives (e.g.
<red,blue>
) for simplification. - Make the
record["exception"]
attribute unpackable as a(type, value, traceback)
tuple. - Fix error happening in some rare circumstances because
frame.f_globals
dict did not contain"__name__"
key and hence prevented Loguru to retrieve the module's name. From now,record["name"]
will be equal toNone
in such case (#62). - Fix logging methods not being serializable with
pickle
and hence raising exception while being passed to somemultiprocessing
functions (#102). - Fix exception stack trace not colorizing source code lines on Windows.
- Fix possible
AttributeError
while formatting exceptions within acelery
task (#52). - Fix
logger.catch
decorator not working with generator and coroutine functions (#75). - Fix
record["path"]
case being normalized for no necessary reason (#85). - Fix some Windows terminal emulators (mintty) not correctly detected as supporting colors, causing ansi codes to be automatically stripped (#104).
- Fix handler added with
enqueue=True
stopping working if exception was raised in sink althoughcatch=True
. - Fix thread-safety of
enable()
anddisable()
being called during logging. - Use Tox to run tests (#41).
0.2.5 (2019-01-20)
- Modify behavior of sink option
backtrace=False
so it doesn't extend traceback upward automatically (#30). - Fix import error on some platforms using Python 3.5 with limited
localtime()
support (#33). - Fix incorrect time formatting of locale month using
MMM
andMMMM
tokens (#34, thanks @nasyxx). - Fix race condition permitting writing on a stopped handler.
0.2.4 (2018-12-26)
- Fix adding handler while logging which was not thread-safe (#22).
0.2.3 (2018-12-16)
- Add support for PyPy.
- Add support for Python 3.5.
- Fix incompatibility with
awscli
by downgrading requiredcolorama
dependency version (#12).
0.2.2 (2018-12-12)
- Deprecate
logger.start()
andlogger.stop()
methods in favor oflogger.add()
andlogger.remove()
(#3). - Fix ignored formatting while using
logging.Handler
sinks (#4). - Fix impossibility to set empty environment variable color on Windows (#7).
0.2.1 (2018-12-08)
- Fix typo preventing README to be correctly displayed on PyPI.
0.2.0 (2018-12-08)
- Remove the
parser
and refactor it into thelogger.parse()
method. - Remove the
notifier
and its dependencies (pip install notifiers
should be used instead).
0.1.0 (2018-12-07)
- Add logger.
- Add notifier.
- Add parser.
0.0.1 (2017-09-04)
Initial release.