preston-landers / concurrent-log-handler Goto Github PK
View Code? Open in Web Editor NEWfork of ConcurrentLogHandler
License: Apache License 2.0
fork of ConcurrentLogHandler
License: Apache License 2.0
"win" is also in "darwin", so the installation is requiring "pywin32" on macOS
https://github.com/Preston-Landers/concurrent-log-handler/blob/master/setup.py#L61
A safer way to detect the platform would be:
if sys.platform.startswith("win"):
...
When the ConcurrentTimedRotatingFileHandler
is used without specifying the delay
parameter, the following warning is shown:
DeprecationWarning: concurrent_log_handler parameter
delay
is now ignored and implied as True, please remove from your config.
This seems to be due to the default value of False, while it is None for ConcurrentRotatingFileHandler
.
I'm guessing either the default value should change, or this check should be (None, False)
:
if delay not in (None, True):
warnings.warn(
"concurrent_log_handler parameter `delay` is now ignored and implied as True, "
"please remove from your config.",
DeprecationWarning,
stacklevel=3,
)
When building the package for this project on openSUSE/Tumbleweed, everything works perfectly with Python 3.6, but the test fails with Python 3.8:
[ 3s] + export PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.6/site-packages
[ 3s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.6/site-packages
[ 3s] + rm -rf test
[ 3s] + python3.6 stresstest.py
[ 226s] Waiting while children are out running and playing!
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22299, 22300, 22301]
[ 226s] Waiting on [22300, 22301]
[ 226s] Waiting on [22300, 22301]
[ 226s] Waiting on [22301]
[ 226s] All children have stopped.
[ 226s] Writing out combined client logs...
[ 226s] done.
[ 226s] Writing out combined shared logs...
[ 226s] done.
[ 226s] Running internal diff: (If the next line is 'end of diff', then the stress test passed!)
[ 226s] --- end of diff ----
[ 227s] ++ '[' -f _current_flavor ']'
[ 227s] ++ cat _current_flavor
[ 227s] + last_flavor=python36
[ 227s] + '[' -z python36 ']'
[ 227s] + '[' python36 '!=' python38 ']'
[ 227s] + '[' -d build ']'
[ 227s] + mv build _build.python36
[ 227s] + '[' -d _build.python38 ']'
[ 227s] + mv _build.python38 build
[ 227s] + echo python38
[ 227s] + python_flavor=python38
[ 227s] + export PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.8/site-packages
[ 227s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-concurrentloghandler-0.9.19-0.x86_64/usr/lib/python3.8/site-packages
[ 227s] + rm -rf test
[ 227s] + python3.8 stresstest.py
[ 237s] One or more of the child process has failed.
[ 237s] Aborting test.
[ 237s] Waiting while children are out running and playing!
[ 237s] All children have stopped.
[ 237s] None
[ 237s] None
[ 237s] cp exit code: <__main__.TestManager.ChildProc object at 0x7f22c0c7fb40>: 1
Complete build log with all building steps and versions of all packages used.
In accordance with this docs:
https://python.readthedocs.io/en/stable/library/logging.handlers.html#baserotatinghandler
Standart RotatingHandlers supports usage of custom namer function, to configure file name for rollover process.
could you please implement this logic for ConcurrentRotatingFileHandler?
This should check for None. 0 is a valid user or group id (root, root)
`\python38\lib\site-packages\pip_vendor\requests\utils.py", line 74, in proxy_bypass_registry
proxyOverride = proxyOverride.split(';')
AttributeError: 'list' object has no attribute 'split'`
I found out that the installer is missing a warning that checks prior if portalocker and pywin32 228 is installed. When i have installed these, it works fine to install current_log_handler.
The error arrised because i have no internet connection where i needed this, on my normal workstation i realized that the other 2 wheels got downloaded automatically from the internet and needed to be installed before the current log handler can be installed.
I was just trying to use this on AppVeyor with Python 2.7 but its fails with this:
Traceback (most recent call last):
File "c:\projects\python-language-server\.tox\py27\lib\site-packages\_pytest\config.py", line 365, in _importconftest
mod = conftestpath.pyimport()
File "c:\projects\python-language-server\.tox\py27\lib\site-packages\py\_path\local.py", line 668, in pyimport
__import__(modname)
File "c:\projects\python-language-server\.tox\py27\lib\site-packages\_pytest\assertion\rewrite.py", line 213, in load_module
py.builtin.exec_(co, mod.__dict__)
File "c:\projects\python-language-server\.tox\py27\lib\site-packages\py\_builtin.py", line 221, in exec_
exec2(obj, globals, locals)
File "<string>", line 7, in exec2
File "C:\projects\python-language-server\test\conftest.py", line 4, in <module>
from pyls.__main__ import LOG_FORMAT
File "C:\projects\python-language-server\pyls\__main__.py", line 8, in <module>
from concurrent_log_handler import ConcurrentRotatingFileHandler
File "c:\projects\python-language-server\.tox\py27\lib\site-packages\concurrent_log_handler\__init__.py", line 61, in <module>
from concurrent_log_handler.portalocker import lock, unlock, LOCK_EX, LOCK_NB, LockException
File "c:\projects\python-language-server\.tox\py27\lib\site-packages\concurrent_log_handler\portalocker.py", line 89, in <module>
import win32con
ImportError: No module named win32con
ERROR: could not load C:\projects\python-language-server\test\conftest.py
When attempting to run:
pip install concurrentloghandler
The following errors are thrown:
ERROR: Command errored out with exit status 1:
command: /home/bm-developer/.pyenv/versions/3.6.8/envs/bm-glu-venv/bin/python3.6 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-g2rhood0/concurrentloghandler_0637ed04cfea435eb5bf81583eef2fb8/setup.py'"'"'; __file__='"'"'/tmp/pip-install-g2rhood0/concurrentloghandler_0637ed04cfea435eb5bf81583eef2fb8/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-pcpgar_n
cwd: /tmp/pip-install-g2rhood0/concurrentloghandler_0637ed04cfea435eb5bf81583eef2fb8/
Complete output (1 lines):
error in ConcurrentLogHandler setup command: use_2to3 is invalid.
for every single version as the installer attempts to install from latest backwards.
this results in the final error:
ERROR: Could not find a version that satisfies the requirement concurrentloghandler (from versions: 0.7.2, 0.7.3, 0.7.4, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.9.0, 0.9.1)
ERROR: No matching distribution found for concurrentloghandler
in init.py line 842 in doRollover()
concurrent-log-handler/src/concurrent_log_handler/__init__.py
Lines 840 to 842 in 874188b
s
is the full filename /path/mylog.log.2023-11-15.1.gz
doing s + gzip_ext
makes it /path/mylog.log.2023-11-15.1.gz.gz
and throws an error, causing it rotate logs but never delete and never update the .__mylog.log.lock` file so you'll end up with a new file every time a log message is added
Change the above to
for file in self.getFilesToDelete():
os.remove(file)
use a log config like this
"concurrent_timed_log_handler": {
"level": "INFO",
'class': 'concurrent_log_handler.ConcurrentTimedRotatingFileHandler',
'when': 'midnight',
'interval': 1,
'backupCount': 2,
"use_gzip": True,
"maxBytes": _bytes_5mb,
"formatter": "standard_formatter",
"filename": os.path.join(LOG_DIR, "mylog.log"),
},
In your log dir, create some log files that are over 2 days old, ex: mylog.log.2023-01-01.1.gz
update the .__mylog.lock
to an old timestamp like 1672531200
Then try logging, it should roll over with every log made
[uWSGIWorker1Core0 31324 Fri Oct 27 14:01:32 2023] Unable to do rollover: 'ConcurrentRotatingFileHandler' object has no attribute 'rotation_filename':
File "/usr/lib/python2.7/site-packages/web/application.py", line 279, in wsgi
result = self.handle_with_processors()
File "/usr/lib/python2.7/site-packages/web/application.py", line 249, in handle_with_processors
return process(self.processors)
File "/usr/lib/python2.7/site-packages/web/application.py", line 237, in process
return p(lambda: process(processors))
File "/usr/lib/python2.7/site-packages/web/application.py", line 566, in processor
return handler()
File "/usr/lib/python2.7/site-packages/web/application.py", line 237, in
return p(lambda: process(processors))
File "/usr/lib/python2.7/site-packages/web/application.py", line 237, in process
return p(lambda: process(processors))
File "/usr/lib/python2.7/site-packages/web/application.py", line 581, in processor
result = handler()
File "/usr/lib/python2.7/site-packages/web/application.py", line 237, in
return p(lambda: process(processors))
File "/usr/lib/python2.7/site-packages/web/application.py", line 239, in process
return self.handle()
File "/usr/lib/python2.7/site-packages/web/application.py", line 230, in handle
return self._delegate(fn, self.fvars, args)
File "/usr/lib/python2.7/site-packages/web/application.py", line 420, in _delegate
return handle_class(cls)
File "/usr/lib/python2.7/site-packages/web/application.py", line 396, in handle_class
return tocall(*args)
File "/var/www/apps/duole/webpy-duole.py", line 294, in GET
g_log_test.info("invalid url:" + path + ",ip:" + web.ctx.ip)
File "/usr/lib64/python2.7/logging/init.py", line 1149, in info
self._log(INFO, msg, args, **kwargs)
File "/usr/lib64/python2.7/logging/init.py", line 1268, in _log
self.handle(record)
File "/usr/lib64/python2.7/logging/init.py", line 1278, in handle
self.callHandlers(record)
File "/usr/lib64/python2.7/logging/init.py", line 1318, in callHandlers
hdlr.handle(record)
File "/usr/lib64/python2.7/logging/init.py", line 749, in handle
self.emit(record)
File "/usr/lib/python2.7/site-packages/concurrent_log_handler/init.py", line 387, in emit
self._console_log("Unable to do rollover: %s" % (e,), stack=True)
File "/usr/lib/python2.7/site-packages/concurrent_log_handler/init.py", line 356, in _console_log
stack_str = ":\n" + "".join(traceback.format_stack())
my conf file
[loggers]
keys=root,requestlog
[handlers]
keys=consoleHandler,requestlogHandler
[formatters]
keys=simpleFormatter
[formatter_simpleFormatter]
format=[%(asctime)s]%(lineno)d : %(message)s
[logger_root]
level=DEBUG
handlers=consoleHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[logger_requestlog]
level=DEBUG
handlers=consoleHandler,requestlogHandler
qualname=requestlog
propagate=0
[handler_requestlogHandler]
class=concurrent_log_handler.ConcurrentRotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('log/aaa.log', 'a', 3000, 9, None, True)
I find rotation_filename not support in Python 2.7, I remove this call and fix the bug.
Hi,
not an Issue, more a proposal. Would it be possible to add an additional parameter, to determine the target directory for the lock files?
In our current setup, we use Gunicorn for our Django websites. Since Gunicorn spawns multiple workers, we are in the exact situation to use this fine piece of software you guys offering here.
Now the special case: I want to dockerize the whole applicatin chain. NGINX, Gunicorn, Django, Databases...
The problem now, is that I want to share the logs, within a docker compose system. Therefore, I have to create a volume with the logging directory.
Problem now, since the lock files live directly next to the logging files, the locks get shared as well. This, by it self is not really a problem. BUT it slows the whole process down. Since it needs time, for Docker to copy these files into each other volume to prevent the state from inconsistencies.
And here the proposal: Lets move the lock files away from the logging files, that we can now share these files and don't suffer from the Docker latency penalties.
Thank you
parsed = self.parsers.get(option_name, lambda x: x)(value)
/usr/lib/python3.11/site-packages/setuptools/dist.py:954: DistDeprecationWarning: use_2to3 is ignored.
ep.load()(self, ep.name, value)
error in concurrent-log-handler setup command: use_2to3 is invalid.
Removing use_2to3
in setup.py fixes it.
Hi, I'm unable to get any logging written to either file nor console when using multiprocessing Pool or Process .start()/.join().
Can anyone provide an example?
My logs work fine when running multiple threads. I did call setup_logging_queues() but I'm not sure where to place it.
Working:
from src.concurrent_logger import log
import threading
import time
def thread_function(thread_id):
log.info(f"Thread {thread_id} started")
time.sleep(0.01) # Simulating some work
log.info(f"Thread {thread_id} finished")
if __name__ == "__main__":
threads = []
for i in range(1, 100):
thread = threading.Thread(target=thread_function, args=(i,))
threads.append(thread)
thread.start()
# Wait for all threads to finish
for thread in threads:
thread.join()
Not working:
from src.concurrent_logger import log
import multiprocessing
import time
def thread_function(thread_id):
log.info(f"Thread {thread_id} started")
time.sleep(0.01) # Simulating some work
log.info(f"Thread {thread_id} finished")
if __name__ == "__main__":
processes = []
for i in range(1, 11):
process = multiprocessing.Process(target=thread_function, args=(i,))
processes.append(process)
process.start()
# Wait for all processes to finish
for process in processes:
process.join()
I placed concurrent_log_handler.queue.setup_logging_queues() in the log setup. It produces a seemingly random number (between 3 and 10 maybe) of log lines saying
13-07-2023 11:30:25.620 -[proactor_events.py:633] - DEBUG - Using proactor: IocpProactor
If I don't call setup_logging_queues() at all, then no output is produced.
Perhaps its time to just make this a regular setuptools/pip buildable thing without relying on vendoring ez_setup?
concurrent-log-handler/src/concurrent_log_handler/__init__.py
Lines 822 to 828 in 8951164
I think this not the logic you intended for it to be, it appends a new number to the file name making it grow in length. the ConcurrentRotatingFileHandler
seems do work as expected, but the ConcurrentTimedRotatingFileHandler
does not
Example
mylog.log
mylog.log.2023-11-28_16.1.2.3.4.5.6.7.8.9.10.gz
mylog.log.2023-11-28_16.1.2.3.4.5.6.7.8.9.gz
mylog.log.2023-11-28_16.1.2.3.4.5.6.7.8.gz
mylog.log.2023-11-28_16.1.2.3.4.5.6.7.gz
mylog.log.2023-11-28_16.1.2.3.4.5.6.gz
mylog.log.2023-11-28_16.1.2.3.4.5.gz
mylog.log.2023-11-28_16.1.2.3.4.gz
mylog.log.2023-11-28_16.1.2.3.gz
mylog.log.2023-11-28_16.1.2.gz
mylog.log.2023-11-28_16.1.gz
mylog.log.2023-11-28_16.gz
If you update it to something like this
counter = 1
if os.path.exists(dfn + gzip_ext):
while os.path.exists(f'{dfn}.{counter}{gzip_ext}'):
ending = f".{counter - 1}{gzip_ext}"
if dfn.endswith(ending):
dfn = dfn[: -len(ending)]
counter += 1
dfn = f"{dfn}.{counter}"
Then it will output increment the last digit only
Example:
mylog.log
mylog.log.2023-11-28_16.gz
mylog.log.2023-11-28_16.1.gz
mylog.log.2023-11-28_16.2.gz
mylog.log.2023-11-28_16.3.gz
mylog.log.2023-11-28_16.4.gz
mylog.log.2023-11-28_16.5.gz
mylog.log.2023-11-28_16.6.gz
mylog.log.2023-11-28_16.7.gz
mylog.log.2023-11-28_16.8.gz
mylog.log.2023-11-28_16.9.gz
mylog.log.2023-11-28_16.10.gz
init.py line 558 559 570 use function rotation_filename not find in python27 BaseRotatingHandler
init.py line 237
if owner and os.chown and pwd and grp:
# noinspection PyUnresolvedReferences
self._set_uid = pwd.getpwnam(self.owner[0]).pw_uid
# noinspection PyUnresolvedReferences
self._set_gid = grp.getgrnam(self.owner[1]).gr_gid
wndows system there has't os.chown, run this code raise error.
line 73
try:
import pwd
import grp
except ImportError:
pwd = grp = None
windows cannot import pwd and grp , so pwd = grp = None
so init.py line 237 change pwd and grp before os.chown ,ignore os.chown
if owner and pwd and grp and os.chown:
# noinspection PyUnresolvedReferences
self._set_uid = pwd.getpwnam(self.owner[0]).pw_uid
# noinspection PyUnresolvedReferences
self._set_gid = grp.getgrnam(self.owner[1]).gr_gid
when i use the pip to install the package, it told me concurrent-log-handler is in an unsupported or invalid wheel
I have a flask program using concurrent-log-handler in cmd like this:
and Everything seems normal Logs are also generated normally
But after a period of time, I found that the memory explorer.exe is very large:
Some codes are as follows:
my computer is :windows server 2019 amd64 python amd 64 pywin32 228 concurrent-log-handler 0.9.20
use Process Explorer find like this:
If I do not print the flash log to memory, it is normal
I searched for a long time and didn't know how to block the Werkzeug log until I tried the following code:
logging.getLogger("werkzeug").setLevel(logging.ERROR)
When adding this code, he will not print any information explorer.exe memory has not grown for a long time
I can also end explorer.exe restarts when it grows intolerable,But I still want to configure concurrent-log-handler
Please tell me how to set it up or it's a bug and How does flash mask all logs,thanks google translate.
My django and python versions are very old and I wonder if the value can be supported? django==1.11.1 python=3.6.9
Is there a preferred way to globally implement your example code from within a single .py file/module, and import it into the other modules of a larger sized project? Other than the .ini file?
EDIT: Nevermind I ended up sticking with the .ini file. Runs nicely thanks
Suppose I have a script which can by run by many users, which uses ConcurrentRotatingFileHandler to the same log file. You've provide "chmod" to allow us to set permissions to ensure it is made writable by both users, but there are 2 problems:
Looks like the default terminator of '\n' isn't happy being written to an io stream due to the default encoding. A work around is to set terminator to u'\n'. Is there a better fix for this though?
__init__.py, line 337, in do_write
stream.write(self.terminator)
TypeError: write() argument 1 must be unicode, not str
I have Google Drive (on mirror mode) syncing the log files for my project, however it gets stuck on trying to sync the .__XXX.lock file forever, which balloons the CPU and RAM usage to close to 100% forever on my Windows 10 PC. Is there anything I can do to prevent this?
The behavior changed after the last updated, using python 3.9.15
Previously backupCount: 5
would keep 5 days worth of logs
if today is 2023-12-19 the logs would look like
mylog.log
mylog.log.2023-12-18.gz
mylog.log.2023-12-18.1.gz
mylog.log.2023-12-18.2.gz
mylog.log.2023-12-17.gz
mylog.log.2023-12-17.1.gz
mylog.log.2023-12-17.2.gz
mylog.log.2023-12-16.gz
mylog.log.2023-12-16.1.gz
mylog.log.2023-12-16.2.gz
mylog.log.2023-12-15.gz
mylog.log.2023-12-15.1.gz
mylog.log.2023-12-15.2.gz
mylog.log.2023-12-14.gz
mylog.log.2023-12-14.1.gz
mylog.log.2023-12-14.2.gz
mylog.log.2023-12-13.gz
mylog.log.2023-12-13.1.gz
mylog.log.2023-12-13.2.gz
Now it is only keeping 5 backups, and i'm guessing its based on last modified date so we end up with something like this, where we only have 5 backups and mylog.log.2023-12-17.1.gz
was deleted because of the order it was renamed i guess
mylog.log
mylog.log.2023-12-18.gz
mylog.log.2023-12-18.1.gz
mylog.log.2023-12-18.2.gz
mylog.log.2023-12-17.gz
mylog.log.2023-12-17.2.gz
i haven't dug into this too much, just pointing it out.
For backward compatibility with Python 2.7, it would be better to use io.open
instead of open
:
https://github.com/buddly27/concurrent-log-handler/blob/master/setup.py#L23
Details here:
https://stackoverflow.com/a/10975371/14357093
You stated: 'at some point in your app where it sets up logging' - Where or when exactly do I have to call it to make it work properly?
This iy my CustomLogger class which I instantiate in every new process anew, while passing a Queue to it, where I want it to log in.
class CustomLogger:
__slots__ = ['name', 'log_queue', '_logger', 'no_gui']
def __init__(self, name: str, queue: not None, create_output_file=False, output_folder=None, root_log_level: str = "info", no_gui=False, dev=False):
if output_folder is None:
output_folder = Path(__file__).parents[2]
self.name = name
self.log_queue = queue
self.no_gui = no_gui
dt_fmt = '%Y-%m-%d %H:%M:%S'
if dev:
clrd_fmt = f'%(log_color)s%(asctime)s.%(msecs)03d | %(levelname)-8s | {self.name}:%(funcName)s:%(lineno)s - %(message)s'
non_clrd_fmt = f'%(asctime)s.%(msecs)03d | %(levelname)-8s | {self.name}:%(funcName)s:%(lineno)s - %(message)s'
else:
clrd_fmt = f'%(log_color)s%(asctime)s.%(msecs)03d | %(levelname)-8s | {self.name} - %(message)s'
non_clrd_fmt = f'%(asctime)s.%(msecs)03d | %(levelname)-8s | {self.name} - %(message)s'
if self.no_gui:
import colorlog
clrd_stream_handler = colorlog.StreamHandler()
colored_formatter = colorlog.ColoredFormatter(
clrd_fmt,
datefmt=dt_fmt,
reset=True,
log_colors={
'DEBUG': 'fg_bold_cyan',
'INFO': 'fg_light_white',
'WARNING': 'fg_bold_yellow',
'ERROR': 'fg_bold_red',
'CRITICAL': 'fg_bold_purple',
'SUCCESS': 'fg_bold_green',
'HTTP_DEBUG': 'fg_light_white'
},
secondary_log_colors={},
style='%'
)
clrd_stream_handler.setFormatter(colored_formatter)
self._logger = colorlog.getLogger(name=self.name)
self._logger.addHandler(clrd_stream_handler)
else:
self._logger = getLogger(name=self.name)
non_clrd_stream_handler = StreamHandler()
non_colored_formatter = Formatter(fmt=non_clrd_fmt, datefmt=dt_fmt)
non_clrd_stream_handler.setFormatter(non_colored_formatter)
self._logger.addHandler(non_clrd_stream_handler)
self._logger.setLevel(self._set_root_log_level(root_log_level))
queue_handler = QueueHandler(queue)
self._logger.addHandler(queue_handler)
if create_output_file and output_folder:
_output_folder = Path(output_folder) / "logs"
if not _output_folder.is_dir():
_output_folder.mkdir(exist_ok=True)
timestamp = datetime.now().strftime("%m-%d-%Y-%H")
logfile = str((_output_folder / f"debug_{timestamp}.log").resolve())
rotating_file_handler = ConcurrentRotatingFileHandler(logfile, "a", encoding='utf-8', maxBytes=5 * 1024 * 1024, backupCount=10)
file_formatter = Formatter(fmt=f'%(asctime)s.%(msecs)03d | %(levelname)-8s - %(message)s', datefmt=dt_fmt)
rotating_file_handler.setFormatter(file_formatter)
self._logger.addHandler(rotating_file_handler)
setup_logging_queues() # <------ Call it here?
Is it correct to call it here? Wouldnt it create a new background Thread every time I instantiate the CustomLogger then? Do note I use multiple different queues I attach to logger.
I'm the (unresponsive) author of the ConcurrentLogHandler. I see that you have a package named concurrent-log-handler and just continued the version numbers from where I left off. Thanks for that. I switched jobs several times since first writing this code base and no longer need it or even have an easy way to test it anymore. But I'm glad to see that others have found a use for it; thanks for stepping up. My apologies for my unresponsiveness.
I've updated the LauchPad project page (https://launchpad.net/python-concurrent-log-handler) to link to your github repo in both the description and via an "announcment". (Still wish there was a way to make it a bit more obvious, but I think it's adequate.) Unfortunately, I don't think I can update anything on the ConcurrentLogHandler package page to tell others to use the new package.
Ultimately, it would be nice if there's a way to make the one package alias to the other. (So that anyone does a "pip install" of either package name would get the latest version.)
Looks like my only option would be to submit a new package that updates the description text, but that seems silly. Are you aware of any other options?
BTW, I've made you a maintainer of ConcurrentLogHandler (but glad to upgrade that to owner, if you want to take it over.) Pushing the same code to both package I suppose would be an option, but not sure what's the most ideal. I'm not a PyPi expert so perhaps there's mechanisms that would help out here that I'm unaware of. Open to suggestions.
def log_file_namer(logger_name: str) -> str:
# path/name.log.N
print('logger_name:',logger_name)
logger_name, backup_number = logger_name.rsplit(".", maxsplit=1)
# path/name.log
logger_name = logger_name.replace(".log", "")
# curr_date = date.today().strftime("%Y_%m_%d") # noqa: DTZ011
curr_date = time.strftime("%Y_%m_%d_%H_%M_%S") # noqa: DTZ011
return f"{logger_name}_{curr_date}_({backup_number}).log"
def my_program():
import concurrent_log_handler
# Now for the meat of your program...
logger = logging.getLogger("MyExample")
logger.setLevel(logging.DEBUG) # optional to set this level here
handler = concurrent_log_handler.ConcurrentRotatingFileHandler(
"/pythonlogs/logger_name_testc.log", "a", maxBytes=512000, backupCount=6
)
handler.namer = log_file_namer
logger.addHandler(handler)
for idx in range(0, 500):
time.sleep(0.1)
print("Loop %d; logging a message." % idx)
logger.debug("%d > A debug message.", idx)
if idx % 2 == 0:
logger.info("%d > An info message.", idx)
print("Done with example; exiting.")
if __name__ == "__main__":
my_program()
i means that ,
when file size should raotate file, then rotate;
when time should raotate file ,but file size is not large enough,also ratate file.
i have test handler namer function, i found that when time should taote but file size is not enough,it can not rotate file.
i means that every day should has at least one file, ignore file size whether or not reach the maxBytes.
how can i do?
The configuration is as follows:
logger: Logger = logging.getLogger(name)
logger.addFilter(ContextFilter())
logger.setLevel(logging.INFO)
# handler
handler = ConcurrentTimedRotatingFileHandler(filename=filename, encoding="utf-8", when="MIDNIGHT", interval=1, backupCount=7)
handler.suffix = "%Y-%m-%d.log"
handler.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}.log$")
# requestId 需要添加 ContextFilter
handler.setFormatter(logging.Formatter("%(asctime)s %(levelname)6s %(lineno)4d %(requestId)s --- [%(funcName)s] : %(message)s"))
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
Hi,
Sorry to put this as an issue, but I've been struggling to get TimedRotatingFileHandler working on Windows and your package appears to be the best solution I can find.
I'm using this handler for logging in a Flask web application, which is running in a gevent WSGI container. Quitting the application is just by a "ctrl-c" or if it's a Task Scheduler task there is just the "end task" option.
In either method, I have a file .__flask.lock left after the application is stopped.
Do I need to find a way to delete this file, or is it safe to leave it there?
Thank you!
Hi there,
I have been using Concurrent log handler for few of my projects. One of them started to crash recently. Currently i tried the latest available version 0.9.12 without luck. Here is backtrace:
Traceback (most recent call last):
File "/usr/lib/python3.6/logging/init.py", line 996, in emit
stream.write(msg)
ValueError: I/O operation on closed file.During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/contrib/admin/options.py", line 607, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/utils/decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/contrib/admin/sites.py", line 223, in inner
return view(request, *args, **kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1650, in change_view
return self.changeform_view(request, object_id, form_url, extra_context)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/utils/decorators.py", line 45, in _wrapper
return bound_method(*args, **kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/utils/decorators.py", line 142, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1536, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1575, in _changeform_view
self.save_model(request, new_object, form, not add)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1094, in save_model
obj.save()
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/db/models/base.py", line 717, in save
force_update=force_update, update_fields=update_fields)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/db/models/base.py", line 757, in save_base
update_fields=update_fields, raw=raw, using=using,
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in send
for receiver in self._live_receivers(sender)
File "/home/dismine/www/project/env/lib/python3.6/site-packages/django/dispatch/dispatcher.py", line 175, in
for receiver in self._live_receivers(sender)
File "/home/dismine/www/project/apps/backbone/signals.py", line 13, in update_orders
logger.debug("Update orders signal")
File "/usr/lib/python3.6/logging/init.py", line 1296, in debug
self._log(DEBUG, msg, args, **kwargs)
File "/usr/lib/python3.6/logging/init.py", line 1444, in _log
self.handle(record)
File "/usr/lib/python3.6/logging/init.py", line 1454, in handle
self.callHandlers(record)
File "/usr/lib/python3.6/logging/init.py", line 1516, in callHandlers
hdlr.handle(record)
File "/usr/lib/python3.6/logging/init.py", line 865, in handle
self.emit(record)
File "/usr/lib/python3.6/logging/init.py", line 1000, in emit
self.handleError(record)
File "/usr/lib/python3.6/logging/init.py", line 917, in handleError
sys.stderr.write('--- Logging error ---\n')
ValueError: I/O operation on closed file.
I tried to understand what is wrong. It seems that something changed since 0.9.7. This is the last version that works for me. When i run command python manage.py runserver
i get a lot of messages Unhandled exception in thread started by
. As you can see this message is not very informative because no backtrace or name of function. Also log is empty. Normally i must see in console a lot debug messages, but not with the version above 0.9.7. The website kind of working. But when i try to save something it crashes with above log errors.
Place "/home/dismine/www/project/apps/backbone/signals.py" looks like this:
@receiver(post_save, sender=Customer)
def update_orders(sender, instance, **kwargs):
logger = logging.getLogger(__name__)
logger.debug("Update orders signal")
if os.name != 'nt':
restore_orders.apply_async((instance.pk, instance.measurements.pk), timeout=settings.RESTORING_ORDERS)
For now i will return to 0.9.7. If you need more info please tell me.
I got TypeError when using ConcurrentRotatingFileHandler:
My log module:
import logging
import os
from concurrent_log_handler import ConcurrentRotatingFileHandler
def _logging(log_name, log_level=logging.INFO, log_path='../data/logs/'):
line_format = '[%(levelname)7s] [%(asctime)s] [%(processName)s] [%(threadName)s] ' \
'[%(filename)s:%(lineno)s]: %(message)s'
log_format = logging.Formatter(line_format)
logger = logging.getLogger(log_name)
logger.setLevel(log_level)
cmd = logging.StreamHandler()
cmd.setFormatter(log_format)
logger.addHandler(cmd)
os.makedirs(log_path, exist_ok=True)
log_path = f'{log_path}{log_name}.log'
handler = ConcurrentRotatingFileHandler(filename=log_path, maxBytes=1024 * 1024, backupCount=50, encoding='utf-8')
handler.setFormatter(log_format)
logger.addHandler(handler)
return logger
LOG = _logging('common')
my testcase:
import unittest
class LoggerTestCase(unittest.TestCase):
def process_log(self):
LOG.info('A process log')
def test_process_logger(self):
import multiprocessing
LOG.info('start test process LOG')
process = multiprocessing.Process(target=self.process_log)
process.start()
LOG.info("Done")
How can I fix it?
There is no member terminator.
init.py:294
if self.terminator:
stream.write(self.terminator)
A terminator string can be implemented with a formatter.
def _do_unlock(self):
if self.stream_lock:
if self.is_locked:
unlock(self.stream_lock)
self.is_locked = False
self.stream_lock.close()
self.stream_lock = None
else:
self._console_log("No self.stream_lock to unlock", stack=True)
this function does not catch err in unlock of portalocker.
This issue is found by @bdss58.
This logger keeps setting self.stream = None
causing the next logging statement to fail:
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: None, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
--- Logging error ---
Traceback (most recent call last):
File "F:\Python\lib\logging\__init__.py", line 995, in emit
stream.write(msg)
AttributeError: 'NoneType' object has no attribute 'write'
The file is already 250% above the maximum rotation of 50MB, but cannot be rolled because it is opened on the log viewer.
There is not problem in not rotating because the file is above the maximum rotation size, if the file is locked. The file can keep growing until it is unlocked by other other applications. However, it never should to set the stream logger to None
, making the logging fail randomly with AttributeError: 'NoneType' object has no attribute 'write'
.
I added these lines for debugging:
File: Data/Packages/ConcurrentLogHandler/all/concurrent_log_handler/__init__.py
234:
235: def _close(self):
236: """ Close file stream. Unlike close(), we don't tear anything down, we
237: expect the log to be re-opened after rotation."""
238: if self.stream:
239: try:
240: if not self.stream.closed:
241: # Flushing probably isn't technically necessary, but it feels right
242: self.stream.flush()
243: self.stream.close()
244: finally:
245: sys.stderr.write( "Setting self.stream = None: %s\n" % self.stream )
246: self.stream = None
File: F:/Python/Lib/logging/__init__.py
979:
980: def emit(self, record):
981: """
982: Emit a record.
983:
984: If a formatter is specified, it is used to format the record.
985: The record is then written to the stream with a trailing newline. If
986: exception information is present, it is formatted using
987: traceback.print_exception and appended to the stream. If the stream
988: has an 'encoding' attribute, it is used to determine how to do the
989: output to the stream.
990: """
991: try:
992: msg = self.format(record)
993: sys.stderr.write( "self.stream on StreamHandler: %s\n" % self.stream )
994: stream = self.stream
995: stream.write(msg)
996: stream.write(self.terminator)
Full log:
[pyls] 16:12:55:0730762 Logging to the file F:\SublimeText\debug2.txt
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: None, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
--- Logging error ---
Traceback (most recent call last):
File "F:\Python\lib\logging\__init__.py", line 995, in emit
stream.write(msg)
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "F:\Python\Scripts\pyls-script.py", line 11, in <module>
load_entry_point('python-language-server', 'console_scripts', 'pyls')()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\__main__.py", line 54, in main
start_io_lang_server(stdin, stdout, PythonLanguageServer)
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 62, in start_io_lang_server
server.start()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 88, in start
self.rpc_manager.start()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\rpc_manager.py", line 46, in start
self.consume_requests()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\rpc_manager.py", line 106, in consume_requests
self._handle_request(message)
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\rpc_manager.py", line 123, in _handle_request
maybe_handler = self._message_handler(request.method, request.params if request.params is not None else {})
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 106, in handle_request
return getattr(self, method_call)(**params)
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 167, in m_initialize
self._dispatchers = self._hook('pyls_dispatchers')
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 128, in _hook
log.debug("PythonLanguageServer, self.config: %s", self.config)
File "F:\Python\lib\logging\__init__.py", line 1297, in debug
self._log(DEBUG, msg, args, **kwargs)
File "F:\SublimeText\Data\Packages\DebugTools\all\debug_tools\logger.py", line 574, in _log
super()._log( level, msg, args, exc_info, extra, stack_info )
Message: 'PythonLanguageServer, self.config: %s'
Arguments: (<pyls.config.config.Config object at 0x00000201F5902A20>,)
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: None, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
--- Logging error ---
Traceback (most recent call last):
File "F:\Python\lib\logging\__init__.py", line 995, in emit
stream.write(msg)
AttributeError: 'NoneType' object has no attribute 'write'
Call stack:
File "F:\Python\Scripts\pyls-script.py", line 11, in <module>
load_entry_point('python-language-server', 'console_scripts', 'pyls')()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\__main__.py", line 54, in main
start_io_lang_server(stdin, stdout, PythonLanguageServer)
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 62, in start_io_lang_server
server.start()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 88, in start
self.rpc_manager.start()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\rpc_manager.py", line 46, in start
self.consume_requests()
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\rpc_manager.py", line 106, in consume_requests
self._handle_request(message)
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\rpc_manager.py", line 123, in _handle_request
maybe_handler = self._message_handler(request.method, request.params if request.params is not None else {})
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 106, in handle_request
return getattr(self, method_call)(**params)
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 168, in m_initialize
self._hook('pyls_initialize')
File "d:\user\dropbox\softwareversioning\python-language-server\pyls\python_ls.py", line 128, in _hook
log.debug("PythonLanguageServer, self.config: %s", self.config)
File "F:\Python\lib\logging\__init__.py", line 1297, in debug
self._log(DEBUG, msg, args, **kwargs)
File "F:\SublimeText\Data\Packages\DebugTools\all\debug_tools\logger.py", line 574, in _log
super()._log( level, msg, args, exc_info, extra, stack_info )
Message: 'PythonLanguageServer, self.config: %s'
Arguments: (<pyls.config.config.Config object at 0x00000201F5902A20>,)
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
self.stream on StreamHandler: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>, sys.stderr: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
Setting self.stream = None: <_io.TextIOWrapper name='F:\\SublimeText\\debug2.txt' mode='a' encoding='cp1252'>
The following condition is not properly transmitted into the wheel:
try:
IS_PY2 = sys.version_info.major == 2
except Exception:
IS_PY2 = True
if IS_PY2:
# https://github.com/Preston-Landers/concurrent-log-handler/issues/28
# If Python 2, don't allow fulfillment with portalocker 2.0 as it won't work
install_requires = ['portalocker<=1.7.1']
else:
install_requires = ['portalocker>=1.4.0']
Therefore, if the wheel is creating with Python 3.8, the installation will require 'portalocker>=1.4.0', even if the targeted Python version in 2.7. Using conditional dependency as defined in PEP-508 will make the wheel truly universal:
install_requires = [
'portalocker<=1.7.1; python_version < "3"',
'portalocker>=1.4.0; python_version >= "3"',
]
The wheel currently uploaded to PyPi is not working on 2.7 for this reason:
https://pypi.org/project/concurrent-log-handler/#files
1、concurrent-log-handler performance test code is
import logging
import time
import concurrent_log_handler
logger = logging.getLogger("MyExample")
logger.setLevel(logging.DEBUG) # optional to set this level here
handler = concurrent_log_handler.ConcurrentTimedRotatingFileHandler(
filename="/pythonlogs/logger_fj.log", mode="a", maxBytes=1000 * 1000 * 100, backupCount=6,when='d',
)
# handler.namer = log_file_namer
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
print(time.strftime('%Y_%m_%d %H:%M:%S'))
for i in range(10000):
logger.info(f'abcdefgfgbfgddhfgdhjfgjfghkjhkggj {i}')
print(time.strftime('%Y_%m_%d %H:%M:%S'))
nb_log rely concurrent-log-handler, because concurrent-log-handler is multiprocess safe rotate file handler,but the performance is very very bad.
write 10,000 log,the test code cost 2 minutes ,on windwos it is too slow.
it cost 8 seconds to write 100,000 log on linux,linux is faster than win.
but only write 1,2500 evey seconds on linux ,it is also bad performance on linux.
2、logging.FileHandler performence
handler = logging.FileHandler(
filename="/pythonlogs/logger_fj.log", mode="a",
)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
print(time.strftime('%Y_%m_%d %H:%M:%S'))
for i in range(100000):
logger.info(f'abcdefgfgbfgddhfgdhjfgjfghkjhkggj {i}')
print(time.strftime('%Y_%m_%d %H:%M:%S'))
logging.FileHandler only cost 1 secoinds to write 100,000 msg.
3、 i kown to ensure multi-process safe for roate file ,will expense python performence and the file lock waste system performence,
but can you prove concurrent-log-handler a little?
i hope to ensure multi-process safe for roate file, write 10,000 msg one second on win,30000 msg one second on linux ,could you improve the performance?
4、Can you consider batch writing every 0.1 seconds for improve the performance?
Hello,
Not sure why was that idea to hard copy the portalocker module inside of the distributive?!
What I have:
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)] on win32
concurrent_log_handler Version: 0.9.8 (just instaled)
Created a test file from your example on the home page: test.py.
Started it, got Windows dialog: Python has stopped working.
Debugger shows some problem with code calling msvcr100.dll!_get_osfhandle(int fh)
Did: pip install -U portalocker
Changed in Lib\site-packages\concurrent_log_handler_init_.py:
#from concurrent_log_handler.portalocker import LOCK_EX, LOCK_NB, LockException, lock, unlock
from portalocker import LOCK_EX, LOCK_NB, LockException, lock, unlock
Started test.py again. It worked fine.
I will do more tests and let you know if anything else failing.
As far as I can tell there is no way to configure the rotation by time like TimedRotatingFileHandler, will it be hard to add another handler that will rotate like TimedRotatingFileHandler but with the locking mechanism?
Python 2.7 is now end-of-life, but some of us support old linux distros which do not have a workable Python3. In some instances, we cannot easily upgrade these systems.
Please consider changing your setup.py
install_requires
to install_requires = ['portalocker<=1.7.1,>=1.4.0']
Doing so prevents breaking those environments that are still stuck with Python2.7.
(py27_u18) mpennington@Mpennington-X1:~$ pip freeze | grep -E "portalocker|concurrent"
concurrent-log-handler==0.9.16
portalocker==2.0.0
(py27_u18) mpennington@Mpennington-X1:~$ python -V
Python 2.7.17
(py27_u18) mpennington@Mpennington-X1:~$ python
Python 2.7.17 (default, Jul 20 2020, 15:37:01)
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import concurrent_log_handler
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mpennington/venv/py27_u18/local/lib/python2.7/site-packages/concurrent_log_handler/__init__.py", line 69, in <module>
from portalocker import LOCK_EX, lock, unlock
File "/home/mpennington/venv/py27_u18/local/lib/python2.7/site-packages/portalocker/__init__.py", line 5, in <module>
from . import utils
File "/home/mpennington/venv/py27_u18/local/lib/python2.7/site-packages/portalocker/utils.py", line 290
def __init__(self, maximum: int, name: str = 'bounded_semaphore',
^
SyntaxError: invalid syntax
>>> quit()
(py27_u18) mpennington@Mpennington-X1:~$
(py27_u18) mpennington@Mpennington-X1:~$ pip install portalocker==1.7.1
Collecting portalocker==1.7.1
Using cached portalocker-1.7.1-py2.py3-none-any.whl (10 kB)
Installing collected packages: portalocker
Attempting uninstall: portalocker
Found existing installation: portalocker 2.0.0
Uninstalling portalocker-2.0.0:
Successfully uninstalled portalocker-2.0.0
Successfully installed portalocker-1.7.1
(py27_u18) mpennington@Mpennington-X1:~$ python
Python 2.7.17 (default, Jul 20 2020, 15:37:01)
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import concurrent_log_handler
>>> quit()
If I specify an encoding, the log file is opened in binary mode, which on Windows causes it to be written with Unix-style line endings.
I may be missing something, but I can't figure out why the file is being opened via codecs.open instead of the simple open. The pull request I opened fixes this by simply always using open. I can't think of why it wasn't done like this in the first place.
I recently merged #5 which allows setting the file owner and permissions (mode) for the rollover file on Linux. However it seems like it should have an option to do this automatically without having to specify the owner and permissions, similar to cp -p
.
I'm not sure how feasible it would be to add a Windows equivalent to #5 given the nature of specifying Windows security attributes, but preserving the existing attributes should be an easier task.
Your module works perfectly fine on macos, but I can't get it to work on Windows. The source is identical.
I am on python 3.6.8 and concurrent-log-handler 0.9.16
In essence, what I'm doing is I am defining a logger on top level and use it in a class method executed with concurrent_futures.ProcessPoolExecutor:
class Foo():
...
def func(self):
logger.info("logthis")
def get_logger(loggerFilename)
logger = logging.getLogger()
rotateHandler = ConcurrentRotatingFileHandler(loggerFilename, "a", 512*1024, 100)
# format of the log
formatter = logging.Formatter("%(asctime)s %(process)d %(funcName)16s %(levelname)8s %(message)s")
rotateHandler.setFormatter(formatter)
logger.addHandler(rotateHandler)
# mode of the log
logger.setLevel(logging.INFO)
return logger
if __name__ == "__main__":
loggerFilename = "/path/to/log"
logger = get_logger(loggerFilename)
c1 = Foo()
c2 = Foo()
with ProcessPoolExecutor(max_workers=6) as executor:
executor.submit(c1.func)
executor.submit(c2.func)
Return with error pickling error: TypeError: can't pickle _thread.RLock objects.
Any help would be appreciated.
Using concurrentLogHandler v. 0.9.1 in python 3.6 (on Centos 7) I get the follow exception:
--- Logging error --- Traceback (most recent call last): File "/usr/lib64/python3.6/logging/handlers.py", line 72, in emit self.doRollover() File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/cloghandler.py", line 261, in doRollover if self.backupCount <= 0: TypeError: '<=' not supported between instances of 'str' and 'int' Call stack: File "manage.py", line 25, in <module> execute_from_command_line(sys.argv) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line utility.execute() File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 108, in handle return getattr(self, shell)(options) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 83, in python code.interact(local=imported_objects) File "/usr/lib64/python3.6/code.py", line 302, in interact console.interact(banner, exitmsg) File "/usr/lib64/python3.6/code.py", line 233, in interact more = self.push(line) File "/usr/lib64/python3.6/code.py", line 259, in push more = self.runsource(source, self.filename) File "/usr/lib64/python3.6/code.py", line 75, in runsource self.runcode(code) File "/usr/lib64/python3.6/code.py", line 91, in runcode exec(code, self.locals) File "<console>", line 1, in <module> File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/db/models/query.py", line 226, in __repr__ data = list(self[:REPR_OUTPUT_SIZE + 1]) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/db/models/query.py", line 250, in __iter__ self._fetch_all() File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/db/models/query.py", line 1118, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/db/models/query.py", line 53, in __iter__ results = compiler.execute_sql(chunked_fetch=self.chunked_fetch) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 889, in execute_sql cursor.execute(sql, params) File "/home/bmlnx/.virtualenvs/librofirma/lib/python3.6/site-packages/django/db/backends/utils.py", line 90, in execute extra={'duration': duration, 'sql': sql, 'params': params} Message: '(%.3f) %s; args=%s'
Debugging the project I've found the problem is in doRollover method (cloghandler.py) at the statement:
if self.backupCount <= 0:
I think the solution could be:
if int(self.backupCount) <= 0:
System details
OS: Centos 7
Python: 3.6
Library version: 0.9.1
Django: 1.11
Steps to reproduce the exception
In settings.py configure backupCount parameter as int:
'backupCount': 30,
AS showed in the attached screenshot, even if the backupCount parameter is setted as integer at the BaseRotatingHandler class, on the emit method, the parameter self.backupCount is readed as str.
Hi
When testing out this example in windows:
from logging import getLogger, INFO
from concurrent_log_handler import ConcurrentRotatingFileHandler
import os
log = getLogger(__name__)
# Use an absolute path to prevent file rotation trouble.
logfile = os.path.abspath("mylogfile.log")
# Rotate log after reaching 512K, keep 5 old copies.
rotateHandler = ConcurrentRotatingFileHandler(logfile, "a", 512*1024, 5)
log.addHandler(rotateHandler)
log.setLevel(INFO)
log.info("Here is a very exciting log message, just for you")
It produces this Permission error.
--- Logging error ---
Traceback (most recent call last):
File "/Users/davig/opt/anaconda3/lib/python3.9/site-packages/concurrent_log_handler/__init__.py", line 327, in emit
self._do_lock()
File "/Users/davig/opt/anaconda3/lib/python3.9/site-packages/concurrent_log_handler/__init__.py", line 404, in _do_lock
self._open_lockfile()
File "/Users/davig/opt/anaconda3/lib/python3.9/site-packages/concurrent_log_handler/__init__.py", line 249, in _open_lockfile
self.stream_lock = open(lock_file, "wb", buffering=0)
PermissionError: [Errno 13] Permission denied: '/Volumes/GoogleDrive/My Drive/[All Python Projects]/PYTHON PRACTICE/.__mylogfile.lock'
Call stack:
File "/Volumes/GoogleDrive/My Drive/[All Python Projects]/PYTHON PRACTICE/LOGGING_/concurrent_log_handler/test.py", line 13, in <module>
log.info("Here is a very exciting log message, just for you")
File "/Users/davig/opt/anaconda3/lib/python3.9/logging/__init__.py", line 1446, in info
self._log(INFO, msg, args, **kwargs)
File "/Users/davig/opt/anaconda3/lib/python3.9/logging/__init__.py", line 1589, in _log
self.handle(record)
File "/Users/davig/opt/anaconda3/lib/python3.9/logging/__init__.py", line 1599, in handle
self.callHandlers(record)
File "/Users/davig/opt/anaconda3/lib/python3.9/logging/__init__.py", line 1661, in callHandlers
hdlr.handle(record)
File "/Users/davig/opt/anaconda3/lib/python3.9/logging/__init__.py", line 952, in handle
self.emit(record)
File "/Users/davig/opt/anaconda3/lib/python3.9/site-packages/concurrent_log_handler/__init__.py", line 343, in emit
self.handleError(record)
Message: 'Here is a very exciting log message, just for you'
Arguments: ()
(base) davig@Davids-MacBook-Air PYTHON PRACTICE %
How would I resolve this for running it on windows?
Hi
Unfortunately there is a bug in concurrent-log-handler which corrupts logfiles when multiple processes are writing to it at the same time that were started using for example fork or by creating new threads. Here is a demo script that will illustrate the issue:
#!/usr/bin/env python3
from logging import getLogger, INFO
from concurrent_log_handler import ConcurrentRotatingFileHandler
import os
from multiprocessing import Pool
llength = 10000
def genlog(a):
log.info(a*llength)
fname = "mylogfile.log"
log = getLogger()
logfile = os.path.abspath(fname)
rotateHandler = ConcurrentRotatingFileHandler(logfile)
log.addHandler(rotateHandler)
log.setLevel(INFO)
with Pool(300) as p:
p.map(genlog, ["a"]*50000, 1)
log.removeHandler(rotateHandler)
rotateHandler.close()
with open(fname, "r") as f:
for idx, l in enumerate(f):
clength = len(l)
if clength != llength+1:
print("Problem in line {}: length is {}".format(idx, clength))
Just run it, and it will produce a logfile with some empty lines and some lines with twice the length (tested on Linux) with a very high probability.
The reason for this is that the filehandle for the lockfile is created when the handler is created. Every process that is created thereafter with fork or a similar method will share the same file handle and multiple threads/processes can get the exclusive locks.
From my point of view, the best way to fix this is to create a new file handle somewhere in "emit" or a similar function and close it after the log entry is written.
My current environment:
C:\..>python -V
Python 3.7.0
C:\..>VER
Microsoft Windows [Version 10.0.16299.785]
C:\..>pip list
Package Version
---------------------- ----------
certifi 2018.10.15
chardet 3.0.4
concurrent-log-handler 0.9.12
cycler 0.10.0
docopt 0.6.2
idna 2.7
kiwisolver 1.0.1
matplotlib 3.0.0
numpy 1.15.2
pandas 0.23.4
pip 18.1
pipreqs 0.4.9
psutil 5.4.7
pyaml 17.12.1
pyparsing 2.2.1
pypiwin32 223
python-dateutil 2.7.3
pytz 2018.5
pywin32 224
PyYAML 3.13
requests 2.20.0
setuptools 39.0.1
six 1.11.0
urllib3 1.24
yarg 0.1.9
>pip -V
pip 18.1 from c:\..\scoop\apps\python\current\lib\site-packages\pip (python 3.7)
Basically I am stumped why the files are not being gzip compressed when rolled over?
And renaming (post fix .gz) never happens either ... but that's probably the same issue.
Rolling over while running with multiprocessing is working just fine, The only thing that is not working ... is gzip compression.
Any ideas or should I just try running is on a Linux instance? :)
Thank you ahead of time.
Goran
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.