logtail-python 0.4.2__py2.py3-none-any.whl → 0.4.3__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
logtail/__init__.py CHANGED
@@ -5,6 +5,6 @@ from .handler import LogtailHandler
5
5
  from .helpers import LogtailContext, DEFAULT_CONTEXT
6
6
  from .formatter import LogtailFormatter
7
7
 
8
- __version__ = '0.4.2'
8
+ __version__ = '0.4.3'
9
9
 
10
10
  context = DEFAULT_CONTEXT
logtail/frame.py CHANGED
@@ -93,4 +93,9 @@ def _relative_to_main_module_if_possible(pathname):
93
93
  return _relative_to_main_module(pathname) if has_main_module else pathname
94
94
 
95
95
  def _relative_to_main_module(pathname):
96
- return path.relpath(pathname, path.dirname(__main__.__file__))
96
+ try:
97
+ return path.relpath(pathname, path.dirname(__main__.__file__))
98
+ except ValueError:
99
+ # Windows has no relative path between drives, and a PyInstaller build unpacks the
100
+ # script to the system drive while the application may run from another one.
101
+ return pathname
logtail/handler.py CHANGED
@@ -95,9 +95,16 @@ class LogtailHandler(logging.Handler):
95
95
  raise e
96
96
 
97
97
  def flush(self):
98
- if self.flush_thread and self.flush_thread.is_alive():
99
- if not self.flush_thread.flush(timeout=self.flush_timeout):
100
- print('Gave up waiting for Better Stack uploads after {}s, logs are still buffered'.format(self.flush_timeout))
98
+ if not (self.flush_thread and self.flush_thread.is_alive()):
99
+ return
100
+ if logging._lock._is_owned():
101
+ # logging.config.dictConfig() flushes the handlers it replaces while holding the global
102
+ # logging lock, and the worker's upload needs that lock whenever urllib3's logger has a
103
+ # level-cache miss, so waiting here could only deadlock. Nothing is lost: the worker
104
+ # keeps running and sends what is queued as soon as the lock is released.
105
+ return
106
+ if not self.flush_thread.flush(timeout=self.flush_timeout):
107
+ print('Gave up waiting for Better Stack uploads after {}s, logs are still buffered'.format(self.flush_timeout))
101
108
 
102
109
  def _reset_after_fork(self):
103
110
  # A forked child inherits the parent's queue with whatever was still buffered in it,
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logtail-python
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Better Stack client library
5
5
  Home-page: https://github.com/logtail/logtail-python
6
- Download-URL: https://github.com/logtail/logtail-python/tarball/0.4.2
6
+ Download-URL: https://github.com/logtail/logtail-python/tarball/0.4.3
7
7
  Author: Logtail
8
8
  Author-email: hello@logtail.com
9
9
  License: ISC
@@ -0,0 +1,14 @@
1
+ logtail/__init__.py,sha256=s4LOmVNtxWLWS5XoL0bE-d7v8zZAqP_d-xh77sTZ_z8,252
2
+ logtail/compat.py,sha256=KbZmcmDpj_vbMotp16pADPwJ1FkEHGDNjKbOfCy-c10,141
3
+ logtail/flusher.py,sha256=bPSCvKNniXBZWYY5AVZ0w6lFkxswe739Ooa3ZAj608s,5987
4
+ logtail/formatter.py,sha256=nk4W1G95P19ijylPBJ8D9FlO_qbh3tfbv7xzCSfpDN8,968
5
+ logtail/frame.py,sha256=Vmh6UZWz86i16faH1fYqeCS6UUy7-29-XHDgMPwGfB0,3571
6
+ logtail/handler.py,sha256=Cuz8QmFGzBVTpMb6DZZV6VEmJ9smlM3RaqTTBei3GXY,4952
7
+ logtail/helpers.py,sha256=ezDTLsTBAtCtIh_XptSYOiBrZFa-E9wo2SWTnjKgOOU,1156
8
+ logtail/rq.py,sha256=SEjVwjp8lRLab2F0StdssBQ0-vFK1CekEgYwkSICBeo,1023
9
+ logtail/uploader.py,sha256=5oeNxmnyogq1w9MoK2YkxQGxQy_bJ-yS7RqWzltQrKY,1873
10
+ logtail_python-0.4.3.dist-info/licenses/LICENSE.md,sha256=aCBMqxfm7QNyFR9JiJ2GSMvhAURXN2E0yTcYNQloqI0,737
11
+ logtail_python-0.4.3.dist-info/METADATA,sha256=ry2U2ZRaMnPu10JiI7AaSjB2BSu5K-45Q7QfVe4UBTM,2480
12
+ logtail_python-0.4.3.dist-info/WHEEL,sha256=4YBfCYNH4wlLpv3pzq1hbEuIlXA4WJabKLFurZ7eTL0,109
13
+ logtail_python-0.4.3.dist-info/top_level.txt,sha256=QZIbQogN1yFBgjiJ-8NlYArVCL00gBoYbEUT_Ew8l-Q,8
14
+ logtail_python-0.4.3.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- logtail/__init__.py,sha256=4glP1HM13UrMvg1eNN_C4MspQPuKyztVnktGcqsFTuA,252
2
- logtail/compat.py,sha256=KbZmcmDpj_vbMotp16pADPwJ1FkEHGDNjKbOfCy-c10,141
3
- logtail/flusher.py,sha256=bPSCvKNniXBZWYY5AVZ0w6lFkxswe739Ooa3ZAj608s,5987
4
- logtail/formatter.py,sha256=nk4W1G95P19ijylPBJ8D9FlO_qbh3tfbv7xzCSfpDN8,968
5
- logtail/frame.py,sha256=p7vVYcajZvjH4FJDt4ADLfYljVbQXKTGKk3kFec5JUs,3335
6
- logtail/handler.py,sha256=Dg4XKhe1bJITz4XBK9JymmNa0cTV6bCcobHeFExlFws,4495
7
- logtail/helpers.py,sha256=ezDTLsTBAtCtIh_XptSYOiBrZFa-E9wo2SWTnjKgOOU,1156
8
- logtail/rq.py,sha256=SEjVwjp8lRLab2F0StdssBQ0-vFK1CekEgYwkSICBeo,1023
9
- logtail/uploader.py,sha256=5oeNxmnyogq1w9MoK2YkxQGxQy_bJ-yS7RqWzltQrKY,1873
10
- logtail_python-0.4.2.dist-info/licenses/LICENSE.md,sha256=aCBMqxfm7QNyFR9JiJ2GSMvhAURXN2E0yTcYNQloqI0,737
11
- logtail_python-0.4.2.dist-info/METADATA,sha256=km7pAQqucdR1TGjol0bHQyw5qqeqowG-CTFEvafH44Y,2480
12
- logtail_python-0.4.2.dist-info/WHEEL,sha256=4YBfCYNH4wlLpv3pzq1hbEuIlXA4WJabKLFurZ7eTL0,109
13
- logtail_python-0.4.2.dist-info/top_level.txt,sha256=QZIbQogN1yFBgjiJ-8NlYArVCL00gBoYbEUT_Ew8l-Q,8
14
- logtail_python-0.4.2.dist-info/RECORD,,