├── .gitignore ├── CHANGELOG.txt ├── LICENSE.txt ├── MANIFEST.in ├── README.rst ├── _execfile.py ├── _readme ├── Makefile ├── README.rst ├── conf.py └── source │ ├── _static │ └── custom.css │ └── _templates │ ├── footer.html │ └── layout.html ├── docs ├── LCDict-features-and-usage.rst ├── LCDictBasic-organization-basic_usage.rst ├── LCDictBuilderABC.rst ├── Makefile ├── _global.rst ├── arrowO.png ├── arrsup.png ├── arruse.png ├── class-reference.rst ├── conf.py ├── configuration.rst ├── configuring-loggers.rst ├── formatter-presets.rst ├── genindex.rst ├── guide-to-examples.rst ├── index.rst ├── intro-setup-testing-examples.rst ├── lcdict.rst ├── lcdictbasic.rst ├── locking_handlers.rst ├── logging_classes_v2.graphml ├── logging_classes_v2.png ├── mproc_locking_handlers_paradigm.graphml ├── mproc_queue_paradigm.graphml ├── mproc_queue_paradigm.png ├── overview-of-logging.rst ├── prelogging_classes-v4d.graphml ├── prelogging_classes-v4d.png ├── source │ ├── _static │ │ └── custom.css │ └── _templates │ │ ├── footer.html │ │ └── layout.html └── topics-recipes.rst ├── examples ├── NOTE.txt ├── SMTP_handler_just_one.py ├── SMTP_handler_two.py ├── __init__.py ├── _get_locking_pref.py ├── _log saved │ ├── _log--2.7-runs │ │ ├── child_loggers │ │ │ └── child_loggers.log │ │ ├── child_loggers2 │ │ │ └── child_loggers2.log │ │ ├── mproc │ │ │ ├── check_for_NUL_bytes.py │ │ │ ├── mproc_LOCKING.log │ │ │ └── mproc_NOLOCKING.log │ │ ├── mproc2 │ │ │ ├── check_for_NUL_bytes.py │ │ │ ├── mproc2_LOCKING.log │ │ │ └── mproc2_NOLOCKING.log │ │ ├── mproc_deco │ │ │ ├── logfile (LOCKING).log │ │ │ └── logfile (NOLOCKING).log │ │ ├── mproc_deco_rot_fh │ │ │ ├── LOCKING │ │ │ │ ├── _DELETE │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.10 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ ├── rot_fh.log.3 │ │ │ │ ├── rot_fh.log.4 │ │ │ │ ├── rot_fh.log.5 │ │ │ │ ├── rot_fh.log.6 │ │ │ │ ├── rot_fh.log.7 │ │ │ │ ├── rot_fh.log.8 │ │ │ │ └── rot_fh.log.9 │ │ │ └── NOLOCKING │ │ │ │ ├── _DELETE │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ └── rot_fh.log.3 │ │ ├── root_logger │ │ │ └── logfile.log │ │ └── rot_fh │ │ │ ├── _DEL │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.2 │ │ │ └── rot_fh.log.3 │ ├── _log--3.x-runs (I) │ │ ├── child_loggers │ │ │ ├── OLD child_loggers_stderr.txt │ │ │ └── child_loggers.log │ │ ├── child_loggers2 │ │ │ ├── OLD child_loggers2_stderr.txt │ │ │ └── child_loggers2.log │ │ ├── mproc │ │ │ ├── NOLOCKING-has-NULbytes.txt │ │ │ ├── check_for_NUL_bytes.py~HEAD │ │ │ ├── check_for_NUL_bytes.py~develop │ │ │ ├── mproc_LOCKING.log │ │ │ └── mproc_NOLOCKING.log │ │ ├── mproc2 │ │ │ ├── check_for_NUL_bytes.py~HEAD │ │ │ ├── check_for_NUL_bytes.py~develop │ │ │ ├── mproc2-NOLOCKING-has-NULbytes.txt │ │ │ ├── mproc2_LOCKING.log │ │ │ ├── mproc2_NOLOCKING.log │ │ │ └── stderr-output-LOCKING_NOLOCKING.txt │ │ ├── mproc_deco_rot_fh │ │ │ ├── LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ ├── rot_fh.log.3 │ │ │ │ ├── rot_fh.log.4 │ │ │ │ ├── rot_fh.log.5 │ │ │ │ ├── rot_fh.log.6 │ │ │ │ └── stderr out (LOCKING).txt │ │ │ ├── LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ ├── rot_fh.log.3 │ │ │ │ ├── rot_fh.log.4 │ │ │ │ ├── rot_fh.log.5 │ │ │ │ ├── rot_fh.log.6 │ │ │ │ └── stderr out (LOCKING).txt │ │ │ ├── LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ ├── rot_fh.log.3 │ │ │ │ ├── rot_fh.log.4 │ │ │ │ ├── rot_fh.log.5 │ │ │ │ └── stderr out (LOCKING).txt │ │ │ ├── LOCKING │ │ │ │ ├── _temp │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.10 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ ├── rot_fh.log.3 │ │ │ │ ├── rot_fh.log.4 │ │ │ │ ├── rot_fh.log.5 │ │ │ │ ├── rot_fh.log.6 │ │ │ │ ├── rot_fh.log.7 │ │ │ │ ├── rot_fh.log.8 │ │ │ │ └── rot_fh.log.9 │ │ │ ├── NOLOCKING-no_close-doesnt_even_work │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ ├── rot_fh.log.3 │ │ │ │ ├── rot_fh.log.4 │ │ │ │ ├── rot_fh.log.5 │ │ │ │ └── stderr out (NOLOCKING).txt │ │ │ └── NOLOCKING │ │ │ │ ├── rot_fh.log │ │ │ │ ├── rot_fh.log.1 │ │ │ │ ├── rot_fh.log.2 │ │ │ │ └── rot_fh.log.3 │ │ ├── root_logger │ │ │ ├── logfile.log~HEAD │ │ │ └── logfile.log~develop │ │ └── rot_fh │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.10 │ │ │ ├── rot_fh.log.2~HEAD │ │ │ ├── rot_fh.log.2~develop │ │ │ ├── rot_fh.log.3~HEAD │ │ │ ├── rot_fh.log.3~develop │ │ │ ├── rot_fh.log.4~HEAD │ │ │ ├── rot_fh.log.4~develop │ │ │ ├── rot_fh.log.5~HEAD │ │ │ ├── rot_fh.log.5~develop │ │ │ ├── rot_fh.log.6~HEAD │ │ │ ├── rot_fh.log.6~develop │ │ │ ├── rot_fh.log.7~HEAD │ │ │ ├── rot_fh.log.7~develop │ │ │ ├── rot_fh.log.8~HEAD │ │ │ ├── rot_fh.log.8~develop │ │ │ ├── rot_fh.log.9~HEAD │ │ │ ├── rot_fh.log.9~develop │ │ │ ├── rot_fh.log~HEAD │ │ │ └── rot_fh.log~develop │ └── _log--3.x-runs (II) │ │ ├── child_loggers │ │ └── child_loggers.log │ │ ├── child_loggers2 │ │ └── child_loggers2.log │ │ ├── mproc │ │ ├── check_for_NUL_bytes.py │ │ ├── mproc_LOCKING.log │ │ └── mproc_NOLOCKING.log │ │ ├── mproc2 │ │ ├── check_for_NUL_bytes.py │ │ ├── mproc2_LOCKING.log │ │ └── mproc2_NOLOCKING.log │ │ ├── mproc_deco │ │ ├── logfile (LOCKING).log │ │ └── logfile (NOLOCKING).log │ │ ├── mproc_deco_rot_fh │ │ ├── LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.2 │ │ │ ├── rot_fh.log.3 │ │ │ ├── rot_fh.log.4 │ │ │ ├── rot_fh.log.5 │ │ │ ├── rot_fh.log.6 │ │ │ └── stderr out (LOCKING).txt │ │ ├── LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.2 │ │ │ ├── rot_fh.log.3 │ │ │ ├── rot_fh.log.4 │ │ │ ├── rot_fh.log.5 │ │ │ ├── rot_fh.log.6 │ │ │ └── stderr out (LOCKING).txt │ │ ├── LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.2 │ │ │ ├── rot_fh.log.3 │ │ │ ├── rot_fh.log.4 │ │ │ ├── rot_fh.log.5 │ │ │ └── stderr out (LOCKING).txt │ │ ├── LOCKING │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.10 │ │ │ ├── rot_fh.log.2 │ │ │ ├── rot_fh.log.3 │ │ │ ├── rot_fh.log.4 │ │ │ ├── rot_fh.log.5 │ │ │ ├── rot_fh.log.6 │ │ │ ├── rot_fh.log.7 │ │ │ ├── rot_fh.log.8 │ │ │ └── rot_fh.log.9 │ │ ├── NOLOCKING-no_close-doesnt_even_work │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.2 │ │ │ ├── rot_fh.log.3 │ │ │ ├── rot_fh.log.4 │ │ │ ├── rot_fh.log.5 │ │ │ └── stderr out (NOLOCKING).txt │ │ └── NOLOCKING │ │ │ ├── rot_fh.log │ │ │ ├── rot_fh.log.1 │ │ │ ├── rot_fh.log.2 │ │ │ └── rot_fh.log.3 │ │ ├── root_logger │ │ └── logfile.log │ │ └── rot_fh │ │ ├── rot_fh.log │ │ ├── rot_fh.log.1 │ │ ├── rot_fh.log.2 │ │ └── rot_fh.log.3 ├── _smtp_credentials.py ├── check_for_NUL.py ├── child_logger2_main.py ├── child_logger2_sub_noprop.py ├── child_logger2_sub_prop.py ├── child_logger_main.py ├── child_logger_sub_noprop.py ├── child_logger_sub_prop.py ├── custom_callable_formatter.py ├── custom_class_formatter.py ├── dateformat.py ├── dictConfig-can-kill-existing-root-configuration.py ├── filter-adding-fields--custom-formatter-keywords-for-fields.py ├── filter-callable-extra-static-data.py ├── filter-class-extra-static-data.py ├── library │ ├── __init__.py │ └── module.py ├── mproc.py ├── mproc2.py ├── mproc_approach__locking_handlers.py ├── mproc_approach__queue_handler_logging_thread.py ├── mproc_deco.py ├── mproc_deco_rot_fh.py ├── mproc_deco_syslog.py ├── queue_handler_listener.py ├── requirements.txt ├── root_logger.py ├── syslog.py └── use_library.py ├── prelogging ├── __init__.py ├── _version.py ├── formatter_presets.py ├── formatter_presets.txt ├── lcdict.py ├── lcdict_builder_abc.py ├── lcdictbasic.py ├── locking_handlers.py └── six.py ├── run_all.py ├── run_examples.py ├── run_tests.py ├── setup.cfg ├── setup.py └── tests ├── __init__.py ├── _testlogs ├── builder │ ├── subA.log │ └── subB.log ├── logfile.log ├── logfile_delay.log └── rot_fh │ ├── test_rot_fh.log │ ├── test_rot_fh.log.1 │ ├── test_rot_fh.log.10 │ ├── test_rot_fh.log.2 │ ├── test_rot_fh.log.3 │ ├── test_rot_fh.log.4 │ ├── test_rot_fh.log.5 │ ├── test_rot_fh.log.6 │ ├── test_rot_fh.log.7 │ ├── test_rot_fh.log.8 │ └── test_rot_fh.log.9 ├── blather.log ├── formatter_presets_badfile.txt ├── test_LCDict.py ├── test_LCDictBasic.py ├── test_add_xxx_filter.py ├── test_fh_delay.py ├── test_formatter_presets.py ├── test_formatter_style.py ├── test_lcdict_builder.py ├── test_lcdict_builder_SubA.py ├── test_lcdict_builder_SubB.py ├── test_lcdict_builders_top.py ├── test_root_logger.py └── test_rot_fh.py /.gitignore: -------------------------------------------------------------------------------- 1 | /_HIDE/ 2 | /dist/ 3 | /_readme/_build/ 4 | /docs/_build/ 5 | .DS_Store 6 | .idea 7 | /__pycache__/ 8 | /prelogging.egg-info/ 9 | .ipynb_checkpoints/*.* 10 | temp*.py 11 | temp*.txt 12 | *.pyc 13 | -------------------------------------------------------------------------------- /CHANGELOG.txt: -------------------------------------------------------------------------------- 1 | 0.4.3rc1 2 | -------- 3 | 4 | * Removed 'class_'/'class' keyword parameter from LCDictBasic.add_formatter, 5 | it's no longer added to formatter sub-sub-dicts: 6 | 7 | * it's not used by dictConfig, and 8 | * it was inserted even when creating a custom formatter 9 | * it's (perhaps harmless but) misleading: that's not how a custom formatter 10 | is specified 11 | 12 | Docs and tests updated accordingly. 13 | 14 | * Added examples custom_class_formatter.py, custom_callable_formatter.py, 15 | and brief descriptions in Guide To Examples 16 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | License -- MIT License 2 | ---------------------- 3 | Copyright (c) 2014-2016 Brian O'Neill 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include run_tests.py 2 | include run_examples.py 3 | include run_all.py 4 | include _execfile.py 5 | include setup.py 6 | include setup.cfg 7 | include CHANGELOG.txt 8 | include LICENSE.txt 9 | include README.rst 10 | 11 | recursive-include tests * 12 | recursive-include examples * 13 | recursive-include docs * 14 | 15 | exclude build/* 16 | exclude dist/* 17 | exclude _HIDE/* 18 | prune _readme/* 19 | prune docs/_build/* 20 | 21 | global-exclude *.pyc 22 | global-exclude .DS_Store 23 | global-exclude */__pycache__/* 24 | -------------------------------------------------------------------------------- /_execfile.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | def _execfile(filename, globs=None, locs=None): 4 | with open(filename) as f: 5 | code = compile(f.read(), "somefile.py", 'exec') 6 | exec(code, globs, locs) 7 | -------------------------------------------------------------------------------- /_readme/source/_static/custom.css: -------------------------------------------------------------------------------- 1 | /* 2 | Trying to override the hideous font and color 3 | #E74C3C 4 | of inline code in the RTD theme. So far, nothing works. 5 | */ 6 | p, li { 7 | font-family: "Helvetica"; 8 | /*color: #202020;*/ 9 | color: #404040; 10 | } 11 | li { 12 | font-size: 96%; 13 | } 14 | span.literal { 15 | /*color: #0044DD !important;*/ 16 | /*color: #003aa9 !important;*/ 17 | /*color: #003398 !important;*/ 18 | /*color: #3D4B66 !important;*/ 19 | color: #3D4B6E !important; 20 | 21 | /*background-color: #efefff;*/ 22 | /*background-color: #f0f0ff;*/ 23 | background-color: #f3f4fc; 24 | /*background-color: #f6f7ff;*/ 25 | /*font-size: 110% !important;*/ 26 | font-size: 107% !important; 27 | } 28 | 29 | /* TRY THIS -- tighten padding, on right? 30 | */ 31 | .rst-content tt, .rst-content tt, .rst-content code { 32 | color: #000; 33 | /*padding: 2px 5px;*/ 34 | padding: 2px 1px; 35 | } 36 | 37 | code.literal { 38 | /*color: #003398 !important;*/ 39 | /*color: #3D4B66 !important;*/ 40 | color: #3D4B6E !important; 41 | background-color: #f3f4fc; 42 | /*background-color: #f6f7ff;*/ 43 | /*font-size: 87% !important */ 44 | /*font-size: 87% !important;*/ 45 | font-size: 90% !important; 46 | } 47 | 48 | /* THIS works -- code blocks */ 49 | pre { 50 | font-size: 83% !important; 51 | } 52 | 53 | /* Suppress breadcrumbs */ 54 | div[aria-label="breadcrumbs navigation"] { 55 | display: none 56 | } 57 | 58 | /* Code-block comments: */ 59 | .c1 { 60 | color: #6f83d2; 61 | } 62 | /* 63 | Make HRs more visible, they're ridiculous with 'border-top: 1px solid #e1e4e5;'' 64 | */ 65 | hr { 66 | /*border-top: 1px solid #bec1c3;*/ 67 | /*border-top: 4px solid #202020;*/ 68 | height: 4px; /* 6px; */ 69 | color:#202020; 70 | background-color: #800; 71 | border-style: solid; 72 | border-width: 1px; /* 2px; */ 73 | margin-top: 2em; 74 | margin-bottom: 0; 75 | } 76 | /* 77 | DUNNO HOW TO CHANGE SIZE OF CODE BLOCKS. 78 | They're too small. 79 | 80 | div.highlight-python { 81 | font-size: 125% !important; 82 | } 83 | */ 84 | 85 | /*h2 {*/ 86 | /*font-size: 110%;*/ 87 | /*/!*font-style: italic;*!/*/ 88 | /*}*/ 89 | h3 { 90 | font-size: 116%; 91 | font-style: italic; 92 | } 93 | 94 | h4 { 95 | font-size: 104%; 96 | opacity: 0.8; 97 | } 98 | 99 | h5 { 100 | font-size: 95%; 101 | font-style: italic; 102 | opacity: 0.7; 103 | } 104 | 105 | h6 { 106 | font-size: 96%; 107 | /*font-style: italic;*/ 108 | } 109 | -------------------------------------------------------------------------------- /_readme/source/_templates/footer.html: -------------------------------------------------------------------------------- 1 | {% block trans %} 2 |
3 | Built with Sphinx using 4 | a tweaked Read the Docs 5 | theme. 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /_readme/source/_templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | {% set css_files = css_files + ["_static/custom.css"] %} 3 | -------------------------------------------------------------------------------- /docs/LCDictBuilderABC.rst: -------------------------------------------------------------------------------- 1 | .. _LCDictBuilderABC: 2 | 3 | LCDictBuilderABC 4 | =============================== 5 | 6 | This class resides in ``lcdict_builder_abc.py``. 7 | 8 | .. autoclass:: prelogging.lcdict_builder_abc.LCDictBuilderABC 9 | :members: 10 | -------------------------------------------------------------------------------- /docs/_global.rst: -------------------------------------------------------------------------------- 1 | .. role:: raw-html(raw) 2 | :format: html 3 | 4 | .. |br| raw:: html 5 | 6 |
7 | 8 | .. |hr| raw:: html 9 | 10 |
11 | 12 | 13 | .. |brhalf| raw:: html 14 | 15 |
16 |
17 |
18 | 19 | .. |br10th| raw:: html 20 | 21 |
22 |
23 |
24 | -------------------------------------------------------------------------------- /docs/arrowO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/docs/arrowO.png -------------------------------------------------------------------------------- /docs/arrsup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/docs/arrsup.png -------------------------------------------------------------------------------- /docs/arruse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/docs/arruse.png -------------------------------------------------------------------------------- /docs/class-reference.rst: -------------------------------------------------------------------------------- 1 | Class Reference 2 | ========================= 3 | 4 | `prelogging` isn't a large package: it's a few, mostly small classes in four 5 | modules. 6 | 7 | 8 | .. toctree:: 9 | :maxdepth: 1 10 | 11 | lcdictbasic 12 | lcdict 13 | locking_handlers 14 | LCDictBuilderABC 15 | 16 | 17 | Class diagram 18 | ---------------- 19 | 20 | .. include:: _global.rst 21 | 22 | .. index:: diagram: `prelogging` classes — inheritance & and who uses whom 23 | 24 | .. _prelogging-all-classes: 25 | 26 | .. figure:: prelogging_classes-v4d.png 27 | :figwidth: 100% 28 | 29 | |br| **prelogging** classes — inheritance, and who uses whom 30 | 31 | +-----------------------+-----------------------+ 32 | | Symbol | Meaning | 33 | +=======================+=======================+ 34 | | .. image:: arrsup.png | is a superclass of | 35 | +-----------------------+-----------------------+ 36 | | .. image:: arruse.png | uses (instantiates) | 37 | +-----------------------+-----------------------+ 38 | 39 | -------------------------------------------------------------------------------- /docs/genindex.rst: -------------------------------------------------------------------------------- 1 | Index 2 | ====== 3 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. prelogging documentation master file, created by 2 | sphinx-quickstart on Sat Jul 9 18:19:34 2016. 3 | 4 | `prelogging` |release| 5 | ================================================== 6 | 7 | `prelogging` is a pure Python package that provides a simple, consistent, powerful 8 | API for configuring logging. The package includes several "batteries": 9 | 10 | * consistent methods to add handlers both mundane and exotic 11 | * multiprocessing-safe handlers which output to the console, to files and 12 | rotating files, and to the system log 13 | * formatter presets — a fund of useful shorthands for formatters, which you can extend and modify 14 | 15 | .. Using `prelogging` 16 | 17 | Chapters 18 | ------------------------ 19 | 20 | .. toctree:: 21 | :maxdepth: 2 22 | 23 | intro-setup-testing-examples 24 | overview-of-logging 25 | configuration 26 | LCDictBasic-organization-basic_usage 27 | LCDict-features-and-usage 28 | formatter-presets 29 | configuring-loggers 30 | topics-recipes 31 | guide-to-examples 32 | class-reference 33 | genindex 34 | -------------------------------------------------------------------------------- /docs/lcdict.rst: -------------------------------------------------------------------------------- 1 | .. _LCDict: 2 | 3 | LCDict 4 | =============================== 5 | 6 | This class resides in ``lcdict.py``. 7 | 8 | .. automodule:: prelogging.lcdict 9 | 10 | .. autoclass:: prelogging.lcdict.LCDict 11 | :members: __init__, 12 | locking, attach_handlers_to_root, 13 | clone_handler, add_handler, 14 | set_handler_formatter, 15 | add_stream_handler, add_stdout_handler, add_stderr_handler, 16 | add_file_handler, add_rotating_file_handler, 17 | add_syslog_handler, add_email_handler, add_queue_handler, 18 | add_class_filter, add_callable_filter 19 | :special-members: 20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/lcdictbasic.rst: -------------------------------------------------------------------------------- 1 | .. _LCDictBasic: 2 | 3 | LCDictBasic 4 | =============================== 5 | 6 | This class resides in ``lcdictbasic.py``. 7 | 8 | .. autoclass:: prelogging.lcdictbasic.LCDictBasic 9 | :members: __init__, 10 | formatters, filters, handlers, loggers, root, 11 | set_root_level, set_handler_level, set_logger_level, 12 | set_handler_formatter, 13 | add_formatter, add_filter, add_handler, add_logger, 14 | add_stream_handler, add_file_handler, add_null_handler, 15 | attach_handler_filters, 16 | attach_logger_filters, attach_logger_handlers, 17 | attach_root_filters, attach_root_handlers, 18 | dump, check, config, 19 | warnings, Warnings 20 | 21 | -------------------------------------------------------------------------------- /docs/locking_handlers.rst: -------------------------------------------------------------------------------- 1 | .. _locking-handlers: 2 | 3 | Locking Handlers 4 | =============================== 5 | 6 | The multiprocessing-safe handler classes ``LockingStreamHandler``, 7 | ``LockingFileHandler``, ``LockingRotatingFileHandler`` and 8 | ``LockingSyslogHandler`` all use the mixin class ``MPLock_Mixin`` to 9 | wrap a lock around calls to ``emit``. All these classes reside in 10 | ``locking_handlers.py``. 11 | 12 | The :ref:`LCDict` class provides an interface to the locking handlers; 13 | in the ordinary course of things it's probably unnecessary to use them directly. 14 | 15 | .. automodule:: prelogging.locking_handlers 16 | :members: 17 | -------------------------------------------------------------------------------- /docs/logging_classes_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/docs/logging_classes_v2.png -------------------------------------------------------------------------------- /docs/mproc_queue_paradigm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/docs/mproc_queue_paradigm.png -------------------------------------------------------------------------------- /docs/prelogging_classes-v4d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/docs/prelogging_classes-v4d.png -------------------------------------------------------------------------------- /docs/source/_static/custom.css: -------------------------------------------------------------------------------- 1 | /* 2 | h2 { 3 | font-size: 100%; 4 | color: #0B0B0B; 5 | /!*font-style: italic;*!/ 6 | opacity: 0.7; 7 | } 8 | 9 | h3 { 10 | font-size: 100%; 11 | /!*color : #0B0000;*!/ 12 | font-style: italic; 13 | opacity: 0.8; 14 | } 15 | 16 | h4 { 17 | font-size: 95%; 18 | opacity: 0.8; 19 | } 20 | 21 | h5 { 22 | font-size: 97%; 23 | font-style: italic; 24 | opacity: 0.7; 25 | } 26 | 27 | h6 { 28 | font-size: 94%; 29 | } 30 | 31 | */ 32 | 33 | /* 34 | .tt.literal { 35 | color: #404040; 36 | } 37 | */ 38 | /* 39 | Trying to override the hideous font and color 40 | #E74C3C 41 | of inline code in the RTD theme. So far, nothing works. 42 | */ 43 | 44 | span.literal { 45 | /*color: #0044DD !important;*/ 46 | /*color: #003aa9 !important;*/ 47 | /*color: #003398 !important;*/ 48 | /*color: #3D4B66 !important;*/ 49 | color: #3D4B6E !important; 50 | 51 | /*background-color: #efefff;*/ 52 | /*background-color: #f0f0ff;*/ 53 | background-color: #f3f4fc; 54 | /*background-color: #f6f7ff;*/ 55 | /*font-size: 110% !important;*/ 56 | font-size: 107% !important; 57 | } 58 | 59 | /* TRY THIS -- tighten padding, on right? 60 | */ 61 | .rst-content tt, .rst-content tt, .rst-content code { 62 | color: #000; 63 | /*padding: 2px 5px;*/ 64 | padding: 2px 1px; 65 | } 66 | 67 | code.literal { 68 | /*color: #003398 !important;*/ 69 | /*color: #3D4B66 !important;*/ 70 | color: #3D4B6E !important; 71 | background-color: #f3f4fc; 72 | /*background-color: #f6f7ff;*/ 73 | /*font-size: 87% !important */ 74 | /*font-size: 87% !important;*/ 75 | font-size: 90% !important; 76 | } 77 | 78 | /* THIS works -- code blocks */ 79 | pre { 80 | font-size: 83% !important; 81 | } 82 | 83 | /* Suppress breadcrumbs */ 84 | div[aria-label="breadcrumbs navigation"] { 85 | display: none 86 | } 87 | 88 | /* Code-block comments: */ 89 | .c1 { 90 | color: #6f83d2; 91 | } 92 | /* 93 | Make HRs more visible, they're ridiculous with 'border-top: 1px solid #e1e4e5;'' 94 | */ 95 | hr { 96 | border-top: 1px solid #bec1c3; 97 | } 98 | /* 99 | DUNNO HOW TO CHANGE SIZE OF CODE BLOCKS. 100 | They're too small. 101 | 102 | div.highlight-python { 103 | font-size: 125% !important; 104 | } 105 | */ 106 | 107 | /*h2 {*/ 108 | /*font-size: 110%;*/ 109 | /*/!*font-style: italic;*!/*/ 110 | /*}*/ 111 | h3 { 112 | font-size: 116%; 113 | font-style: italic; 114 | } 115 | 116 | h4 { 117 | font-size: 104%; 118 | opacity: 0.8; 119 | } 120 | 121 | h5 { 122 | font-size: 95%; 123 | font-style: italic; 124 | opacity: 0.7; 125 | } 126 | 127 | h6 { 128 | font-size: 96%; 129 | /*font-style: italic;*/ 130 | } 131 | -------------------------------------------------------------------------------- /docs/source/_templates/footer.html: -------------------------------------------------------------------------------- 1 | {% block trans %} 2 |
3 | Built with Sphinx using 4 | a tweaked Read the Docs 5 | theme. 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /docs/source/_templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | {% set css_files = css_files + ["_static/custom.css"] %} 3 | -------------------------------------------------------------------------------- /examples/NOTE.txt: -------------------------------------------------------------------------------- 1 | Run the programs in this directory from this directory -- e.g. 2 | $ cd path/to/examples 3 | $ ./mproc.py 4 | -------------------------------------------------------------------------------- /examples/SMTP_handler_just_one.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | import logging 6 | 7 | try: 8 | import prelogging 9 | except ImportError: 10 | import sys 11 | sys.path[0:0] = ['..'] # , '../..' 12 | from prelogging import LCDict 13 | 14 | from ._smtp_credentials import * 15 | 16 | # for testing/trying the example 17 | TEST_TO_ADDRESS = FROM_ADDRESS 18 | 19 | 20 | def main(): 21 | # root, console handler levels: WARNING. 22 | lcd = LCDict(attach_handlers_to_root=True) 23 | lcd.add_stderr_handler('con-err', 24 | formatter='msg' 25 | ).add_email_handler( 26 | 'email-handler', 27 | level='ERROR', 28 | formatter='time_logger_level_msg', 29 | # SMTPHandler-specific kwargs: 30 | mailhost=SMTP_SERVER, 31 | fromaddr=FROM_ADDRESS, 32 | toaddrs=[TEST_TO_ADDRESS, 'admin@kludge.ly'], # string or list of strings 33 | subject='Alert from SMTPHandler', 34 | username=SMTP_USERNAME, 35 | password=SMTP_PASSWORD 36 | ) 37 | 38 | lcd.config() 39 | 40 | root = logging.getLogger() 41 | root.debug("1.") # not logged (loglevel too low) 42 | root.info("2.") # ditto 43 | root.warning("3.") # logged to console 44 | root.error("4.") # logged to console, emailed 45 | root.critical("5.") # ditto 46 | 47 | 48 | if __name__ == '__main__': 49 | main() 50 | 51 | -------------------------------------------------------------------------------- /examples/SMTP_handler_two.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | import logging 6 | 7 | try: 8 | import prelogging 9 | except ImportError: 10 | import sys 11 | sys.path[0:0] = ['..'] # , '../..' 12 | from prelogging import LCDict 13 | 14 | from ._smtp_credentials import * 15 | 16 | # for testing/trying it the example 17 | TEST_TO_ADDRESS = FROM_ADDRESS 18 | 19 | 20 | def add_smtp_handler_to_lcd( 21 | lcd, # * 22 | handler_name, 23 | level, 24 | toaddrs, # string or list of strings 25 | subject, 26 | filters=()): 27 | """Factor out calls to ``add_email_handler``. 28 | """ 29 | lcd.add_email_handler( 30 | handler_name, 31 | level=level, 32 | filters=filters, 33 | 34 | toaddrs=toaddrs, 35 | subject=subject, 36 | 37 | formatter='time_logger_level_msg', 38 | fromaddr=FROM_ADDRESS, 39 | mailhost=SMTP_SERVER, 40 | username=SMTP_USERNAME, 41 | password=SMTP_PASSWORD 42 | ) 43 | 44 | def filter_error_only(record): 45 | "Let only ERROR messages through" 46 | return record.levelname == 'ERROR' 47 | 48 | 49 | def logging_config(): 50 | lcd = LCDict(attach_handlers_to_root=True) 51 | # root level: WARNING 52 | lcd.add_stderr_handler('con-err', formatter='level_msg') 53 | # console handler level: NOTSET 54 | 55 | # Add TWO SMTPHandlers, one for each level ERROR and CRITICAL, 56 | # which will email technical staff with logged messages of levels >= ERROR. 57 | # We use a filter to make the first handler squelch CRITICAL messages: 58 | lcd.add_callable_filter("filter-error-only", filter_error_only) 59 | 60 | # TEST_TO_ADDRESS included just for testing/trying out the example 61 | basic_toaddrs = [TEST_TO_ADDRESS, 'admin@kludge.ly'] 62 | 63 | # add error-only SMTP handler 64 | add_smtp_handler_to_lcd( 65 | lcd, 66 | 'email-error', 67 | level='ERROR', 68 | toaddrs=basic_toaddrs, 69 | subject='ERROR (Alert from SMTPHandler)', 70 | filters=['filter-error-only']) 71 | # add critical-only SMTP handler 72 | add_smtp_handler_to_lcd( 73 | lcd, 74 | 'email-critical', 75 | level='CRITICAL', 76 | toaddrs=basic_toaddrs + ['cto@kludge.ly'], 77 | subject='CRITICAL (Alert from SMTPHandler)') 78 | lcd.config() 79 | 80 | # ----------------------------------------- 81 | 82 | def main(): 83 | logging_config() 84 | 85 | root = logging.getLogger() 86 | root.warning("Be careful") # logged to console 87 | root.error("Something bad just happened") # logged to console, emailed 88 | root.critical("Time to restart") # ditto 89 | 90 | 91 | if __name__ == '__main__': 92 | main() 93 | 94 | -------------------------------------------------------------------------------- /examples/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/examples/__init__.py -------------------------------------------------------------------------------- /examples/_get_locking_pref.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | import os 4 | import sys 5 | 6 | 7 | def get_locking_pref(): 8 | """Uppercase everything in a copy of sys.argv. 9 | Return True if a unique prefix of --LOCKING was passed, or or -L; 10 | return False if a unique prefix of --NOLOCKING was passed, or -N. 11 | Anything else passed: write help & exit(1). 12 | Nothing passed -> return True. 13 | 14 | :return: bool -- True => use locking, False => don't. 15 | """ 16 | argv=[s.upper() for s in sys.argv[1:]] 17 | if not argv: 18 | return True # locking, yes 19 | 20 | help_str = ( 21 | 'Usage:\n' 22 | ' ./%(PROGNAME)s [--LOCKING | --NOLOCKING]\n' 23 | ' ./%(PROGNAME)s -h | --help\n' 24 | ' \n' 25 | ' Options (case-insensitive, initial letter suffices ' 26 | 'e.g. "--L" or "--n" or even -L):\n' 27 | ' \n' 28 | ' -L, --LOCKING Use LockingRotatingFileHandler [default: True]\n' 29 | ' -N, --NOLOCKING Use logging.RotatingFileHandler [default: False]\n' 30 | ' -h, --help Write this help message and exit.\n' 31 | ) % {'PROGNAME': os.path.basename(sys.argv[0])} 32 | 33 | if len(argv) > 1: 34 | exit(help_str) 35 | 36 | arg = argv[0] 37 | 38 | if arg[0] != '-': exit(help_str) 39 | 40 | arg = arg[1:] 41 | if not arg: exit(help_str) 42 | 43 | if arg[0] != '-': # just one initial '-' 44 | # arg has to be 'L' or 'N' 45 | if arg == 'L': return True 46 | elif arg == 'N': return False 47 | # (else fall through to exit) 48 | else: # # two initial '-'s 49 | # arg[1:] has to be a substring of either 'LOCKING' or 'NOLOCKING' 50 | arg = arg[1:] 51 | if arg in 'L': return True 52 | elif arg in 'N': return False 53 | # (else fall through to exit) 54 | 55 | exit(help_str) 56 | 57 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/child_loggers/child_loggers.log: -------------------------------------------------------------------------------- 1 | examples.child_logger_main: INFO : 2016-07-09 17:12:47,441: Starting up... 2 | examples.child_logger_main: DEBUG : 2016-07-09 17:12:47,441: Doing something boring with 0 3 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 17:12:47,441: Doing something boring with 0 4 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 17:12:47,441: Doing something boring with 0 5 | examples.child_logger_main: INFO : 2016-07-09 17:12:47,442: Doing something special with 0 6 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 17:12:47,442: Doing something SPECIAL with 0 7 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 17:12:47,442: Doing something SPECIAL with 0 8 | examples.child_logger_main: DEBUG : 2016-07-09 17:12:47,442: Doing something boring with 1 9 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 17:12:47,442: Doing something boring with 1 10 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 17:12:47,442: Doing something boring with 1 11 | examples.child_logger_main: INFO : 2016-07-09 17:12:47,442: Doing something special with 1 12 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 17:12:47,442: Doing something SPECIAL with 1 13 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 17:12:47,442: Doing something SPECIAL with 1 14 | examples.child_logger_main: DEBUG : 2016-07-09 17:12:47,442: Doing something boring with 2 15 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 17:12:47,443: Doing something boring with 2 16 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 17:12:47,443: Doing something boring with 2 17 | examples.child_logger_main: INFO : 2016-07-09 17:12:47,443: Doing something special with 2 18 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 17:12:47,443: Doing something SPECIAL with 2 19 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 17:12:47,443: Doing something SPECIAL with 2 20 | examples.child_logger_main: INFO : 2016-07-09 17:12:47,443: ... shutting down. 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/child_loggers2/child_loggers2.log: -------------------------------------------------------------------------------- 1 | root : INFO : 2016-07-09 17:12:47,444: Starting up... 2 | root : DEBUG : 2016-07-09 17:12:47,444: Doing something boring with 0 3 | examples.child_logger2_sub_noprop : DEBUG : 2016-07-09 17:12:47,444: Doing something boring with 0 4 | examples.child_logger2_sub_prop : DEBUG : 2016-07-09 17:12:47,444: Doing something boring with 0 5 | root : WARNING : 2016-07-09 17:12:47,445: Doing something special with 0 6 | examples.child_logger2_sub_noprop : INFO : 2016-07-09 17:12:47,445: Doing something SPECIAL with 0 7 | examples.child_logger2_sub_prop : INFO : 2016-07-09 17:12:47,445: Doing something SPECIAL with 0 8 | root : DEBUG : 2016-07-09 17:12:47,445: Doing something boring with 1 9 | examples.child_logger2_sub_noprop : DEBUG : 2016-07-09 17:12:47,445: Doing something boring with 1 10 | examples.child_logger2_sub_prop : DEBUG : 2016-07-09 17:12:47,445: Doing something boring with 1 11 | root : WARNING : 2016-07-09 17:12:47,445: Doing something special with 1 12 | examples.child_logger2_sub_noprop : INFO : 2016-07-09 17:12:47,445: Doing something SPECIAL with 1 13 | examples.child_logger2_sub_prop : INFO : 2016-07-09 17:12:47,445: Doing something SPECIAL with 1 14 | root : INFO : 2016-07-09 17:12:47,445: ... shutting down. 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc/check_for_NUL_bytes.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc_LOCKING.log') 16 | check_for_NUL('mproc_NOLOCKING.log') 17 | 18 | ''' 19 | ''' 20 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc2/check_for_NUL_bytes.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc2_LOCKING.log') 16 | check_for_NUL('mproc2_NOLOCKING.log') 17 | 18 | ''' 19 | mproc2_LOCKING.log -- checking for NUL bytes 20 | 21 | mproc2_NOLOCKING.log -- checking for NUL bytes 22 | Line 51 has NUL 23 | ''' 24 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco/logfile (NOLOCKING).log: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 17:12:51,997: root : INFO : lat, lon = 0, 0 2 | MainProcess: 2016-07-09 17:12:51,998: root : INFO : lat, lon = 0, 1 3 | MainProcess: 2016-07-09 17:12:51,998: root : INFO : lat, lon = 0, 2 4 | MainProcess: 2016-07-09 17:12:51,998: root : INFO : lat, lon = 0, 3 5 | MainProcess: 2016-07-09 17:12:51,999: root : INFO : lat, lon = 0, 4 6 | MainProcess: 2016-07-09 17:12:51,999: root : INFO : lat, lon = 1, 0 7 | MainProcess: 2016-07-09 17:12:51,999: root : INFO : lat, lon = 1, 1 8 | MainProcess: 2016-07-09 17:12:52,000: root : INFO : lat, lon = 1, 2 9 | MainProcess: 2016-07-09 17:12:52,000: root : INFO : lat, lon = 1, 3 10 | MainProcess: 2016-07-09 17:12:52,000: root : INFO : lat, lon = 1, 4 11 | MainProcess: 2016-07-09 17:12:52,001: root : INFO : lat, lon = 2, 0 12 | MainProcess: 2016-07-09 17:12:52,001: root : INFO : lat, lon = 2, 1 13 | MainProcess: 2016-07-09 17:12:52,001: root : INFO : lat, lon = 2, 2 14 | MainProcess: 2016-07-09 17:12:52,001: root : INFO : lat, lon = 2, 3 15 | MainProcess: 2016-07-09 17:12:52,002: root : INFO : lat, lon = 2, 4 16 | MainProcess: 2016-07-09 17:12:52,002: root : INFO : lat, lon = 3, 0 17 | MainProcess: 2016-07-09 17:12:52,002: root : INFO : lat, lon = 3, 1 18 | MainProcess: 2016-07-09 17:12:52,003: root : INFO : lat, lon = 3, 2 19 | MainProcess: 2016-07-09 17:12:52,003: root : INFO : lat, lon = 3, 3 20 | MainProcess: 2016-07-09 17:12:52,003: root : INFO : lat, lon = 3, 4 21 | MainProcess: 2016-07-09 17:12:52,003: root : INFO : lat, lon = 4, 0 22 | MainProcess: 2016-07-09 17:12:52,003: root : INFO : lat, lon = 4, 1 23 | MainProcess: 2016-07-09 17:12:52,003: root : INFO : lat, lon = 4, 2 24 | MainProcess: 2016-07-09 17:12:52,004: root : INFO : lat, lon = 4, 3 25 | MainProcess: 2016-07-09 17:12:52,004: root : INFO : lat, lon = 4, 4 26 | MainProcess: 2016-07-09 17:12:52,405: root : DEBUG : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558}} 27 | MainProcess: 2016-07-09 17:12:52,405: root : DEBUG : 0.407629013062 28 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/_DELETE: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-42: 2016-07-09 15:50:06,043: root : INFO : processing lat, lon = 5, 2 2 | 5, 2 3 | ForkPoolWorker-43: 2016-07-09 15:50:06,134: root : INFO : processing lat, lon = 5, 4 4 | 5, 4 5 | ForkPoolWorker-41: 2016-07-09 15:50:06,134: root : INFO : processing lat, lon = 5, 3 6 | 5, 3 7 | ForkPoolWorker-42: 2016-07-09 15:50:06,146: root : INFO : processing lat, lon = 5, 5 8 | 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log: -------------------------------------------------------------------------------- 1 | PoolWorker-27: 2016-07-09 17:12:54,773: root : INFO : processing lat, lon = 5, 2 2 | 5, 2 3 | PoolWorker-26: 2016-07-09 17:12:54,874: root : INFO : processing lat, lon = 5, 3 4 | 5, 3 5 | PoolWorker-25: 2016-07-09 17:12:54,874: root : INFO : processing lat, lon = 5, 4 6 | 5, 4 7 | PoolWorker-27: 2016-07-09 17:12:54,875: root : INFO : processing lat, lon = 5, 5 8 | 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | PoolWorker-26: 2016-07-09 17:12:54,568: root : INFO : processing lat, lon = 4, 0 2 | 4, 0 3 | PoolWorker-25: 2016-07-09 17:12:54,569: root : INFO : processing lat, lon = 4, 1 4 | 4, 1 5 | PoolWorker-27: 2016-07-09 17:12:54,570: root : INFO : processing lat, lon = 4, 2 6 | 4, 2 7 | PoolWorker-26: 2016-07-09 17:12:54,670: root : INFO : processing lat, lon = 4, 3 8 | 4, 3 9 | PoolWorker-25: 2016-07-09 17:12:54,670: root : INFO : processing lat, lon = 4, 4 10 | 4, 4 11 | PoolWorker-27: 2016-07-09 17:12:54,672: root : INFO : processing lat, lon = 4, 5 12 | 4, 5 13 | PoolWorker-26: 2016-07-09 17:12:54,772: root : INFO : processing lat, lon = 5, 0 14 | 5, 0 15 | PoolWorker-25: 2016-07-09 17:12:54,772: root : INFO : processing lat, lon = 5, 1 16 | 5, 1 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.10: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 17:12:52,435: root : INFO : lat, lon = 5, 3 2 | MainProcess: 2016-07-09 17:12:52,436: root : INFO : lat, lon = 5, 4 3 | MainProcess: 2016-07-09 17:12:52,436: root : INFO : lat, lon = 5, 5 4 | PoolWorker-26: 2016-07-09 17:12:52,524: root : INFO : processing lat, lon = 0, 0 5 | 0, 0 6 | PoolWorker-25: 2016-07-09 17:12:52,525: root : INFO : processing lat, lon = 0, 1 7 | 0, 1 8 | PoolWorker-27: 2016-07-09 17:12:52,526: root : INFO : processing lat, lon = 0, 2 9 | 0, 2 10 | PoolWorker-26: 2016-07-09 17:12:52,626: root : INFO : processing lat, lon = 0, 3 11 | 0, 3 12 | PoolWorker-25: 2016-07-09 17:12:52,626: root : INFO : processing lat, lon = 0, 4 13 | 0, 4 14 | PoolWorker-27: 2016-07-09 17:12:52,628: root : INFO : processing lat, lon = 0, 5 15 | 0, 5 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | PoolWorker-27: 2016-07-09 17:12:54,265: root : INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | PoolWorker-25: 2016-07-09 17:12:54,266: root : INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | PoolWorker-26: 2016-07-09 17:12:54,365: root : INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | PoolWorker-25: 2016-07-09 17:12:54,367: root : INFO : processing lat, lon = 3, 2 8 | 3, 2 9 | PoolWorker-27: 2016-07-09 17:12:54,367: root : INFO : processing lat, lon = 3, 1 10 | 3, 1 11 | PoolWorker-26: 2016-07-09 17:12:54,467: root : INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | PoolWorker-25: 2016-07-09 17:12:54,468: root : INFO : processing lat, lon = 3, 4 14 | 3, 4 15 | PoolWorker-27: 2016-07-09 17:12:54,469: root : INFO : processing lat, lon = 3, 5 16 | 3, 5 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | PoolWorker-25: 2016-07-09 17:12:53,959: root : INFO : processing lat, lon = 1, 2 2 | 1, 2 3 | PoolWorker-26: 2016-07-09 17:12:54,061: root : INFO : processing lat, lon = 1, 4 4 | 1, 4 5 | PoolWorker-27: 2016-07-09 17:12:54,061: root : INFO : processing lat, lon = 1, 3 6 | 1, 3 7 | PoolWorker-25: 2016-07-09 17:12:54,063: root : INFO : processing lat, lon = 1, 5 8 | 1, 5 9 | PoolWorker-26: 2016-07-09 17:12:54,163: root : INFO : processing lat, lon = 2, 0 10 | 2, 0 11 | PoolWorker-27: 2016-07-09 17:12:54,163: root : INFO : processing lat, lon = 2, 1 12 | 2, 1 13 | PoolWorker-25: 2016-07-09 17:12:54,164: root : INFO : processing lat, lon = 2, 2 14 | 2, 2 15 | PoolWorker-26: 2016-07-09 17:12:54,264: root : INFO : processing lat, lon = 2, 3 16 | 2, 3 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | PoolWorker-27: 2016-07-09 17:12:53,754: root : INFO : processing lat, lon = 0, 1 2 | 0, 1 3 | PoolWorker-26: 2016-07-09 17:12:53,754: root : INFO : processing lat, lon = 0, 0 4 | 0, 0 5 | PoolWorker-25: 2016-07-09 17:12:53,754: root : INFO : processing lat, lon = 0, 2 6 | 0, 2 7 | PoolWorker-27: 2016-07-09 17:12:53,857: root : INFO : processing lat, lon = 0, 3 8 | 0, 3 9 | PoolWorker-26: 2016-07-09 17:12:53,857: root : INFO : processing lat, lon = 0, 4 10 | 0, 4 11 | PoolWorker-25: 2016-07-09 17:12:53,857: root : INFO : processing lat, lon = 0, 5 12 | 0, 5 13 | PoolWorker-27: 2016-07-09 17:12:53,959: root : INFO : processing lat, lon = 1, 0 14 | 1, 0 15 | PoolWorker-26: 2016-07-09 17:12:53,959: root : INFO : processing lat, lon = 1, 1 16 | 1, 1 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 17:12:53,649: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-07-09 17:12:53,650: root : INFO : 1.23839998245 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | PoolWorker-27: 2016-07-09 17:12:53,542: root : INFO : processing lat, lon = 5, 1 2 | 5, 1 3 | PoolWorker-26: 2016-07-09 17:12:53,542: root : INFO : processing lat, lon = 5, 0 4 | 5, 0 5 | PoolWorker-25: 2016-07-09 17:12:53,543: root : INFO : processing lat, lon = 5, 2 6 | 5, 2 7 | PoolWorker-26: 2016-07-09 17:12:53,647: root : INFO : processing lat, lon = 5, 4 8 | 5, 4 9 | PoolWorker-27: 2016-07-09 17:12:53,647: root : INFO : processing lat, lon = 5, 3 10 | 5, 3 11 | PoolWorker-25: 2016-07-09 17:12:53,648: root : INFO : processing lat, lon = 5, 5 12 | 5, 5 13 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.7: -------------------------------------------------------------------------------- 1 | PoolWorker-27: 2016-07-09 17:12:53,236: root : INFO : processing lat, lon = 3, 3 2 | 3, 3 3 | PoolWorker-25: 2016-07-09 17:12:53,237: root : INFO : processing lat, lon = 3, 5 4 | 3, 5 5 | PoolWorker-26: 2016-07-09 17:12:53,338: root : INFO : processing lat, lon = 4, 0 6 | 4, 0 7 | PoolWorker-27: 2016-07-09 17:12:53,339: root : INFO : processing lat, lon = 4, 1 8 | 4, 1 9 | PoolWorker-25: 2016-07-09 17:12:53,339: root : INFO : processing lat, lon = 4, 2 10 | 4, 2 11 | PoolWorker-26: 2016-07-09 17:12:53,440: root : INFO : processing lat, lon = 4, 3 12 | 4, 3 13 | PoolWorker-27: 2016-07-09 17:12:53,441: root : INFO : processing lat, lon = 4, 4 14 | 4, 4 15 | PoolWorker-25: 2016-07-09 17:12:53,441: root : INFO : processing lat, lon = 4, 5 16 | 4, 5 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.8: -------------------------------------------------------------------------------- 1 | PoolWorker-25: 2016-07-09 17:12:52,932: root : INFO : processing lat, lon = 2, 2 2 | 2, 2 3 | PoolWorker-26: 2016-07-09 17:12:53,033: root : INFO : processing lat, lon = 2, 3 4 | 2, 3 5 | PoolWorker-27: 2016-07-09 17:12:53,033: root : INFO : processing lat, lon = 2, 4 6 | 2, 4 7 | PoolWorker-25: 2016-07-09 17:12:53,034: root : INFO : processing lat, lon = 2, 5 8 | 2, 5 9 | PoolWorker-27: 2016-07-09 17:12:53,134: root : INFO : processing lat, lon = 3, 1 10 | 3, 1 11 | PoolWorker-26: 2016-07-09 17:12:53,134: root : INFO : processing lat, lon = 3, 0 12 | 3, 0 13 | PoolWorker-25: 2016-07-09 17:12:53,136: root : INFO : processing lat, lon = 3, 2 14 | 3, 2 15 | PoolWorker-26: 2016-07-09 17:12:53,236: root : INFO : processing lat, lon = 3, 4 16 | 3, 4 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/LOCKING/rot_fh.log.9: -------------------------------------------------------------------------------- 1 | PoolWorker-26: 2016-07-09 17:12:52,728: root : INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | PoolWorker-25: 2016-07-09 17:12:52,728: root : INFO : processing lat, lon = 1, 1 4 | 1, 1 5 | PoolWorker-27: 2016-07-09 17:12:52,729: root : INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | PoolWorker-26: 2016-07-09 17:12:52,830: root : INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | PoolWorker-27: 2016-07-09 17:12:52,830: root : INFO : processing lat, lon = 1, 5 10 | 1, 5 11 | PoolWorker-25: 2016-07-09 17:12:52,830: root : INFO : processing lat, lon = 1, 4 12 | 1, 4 13 | PoolWorker-26: 2016-07-09 17:12:52,931: root : INFO : processing lat, lon = 2, 0 14 | 2, 0 15 | PoolWorker-27: 2016-07-09 17:12:52,932: root : INFO : processing lat, lon = 2, 1 16 | 2, 1 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/NOLOCKING/_DELETE: -------------------------------------------------------------------------------- 1 | 2016-07-09 15:50:06,148: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | 2016-07-09 15:50:06,155: root : INFO : 1.3394660949707031 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/NOLOCKING/rot_fh.log: -------------------------------------------------------------------------------- 1 | 2016-07-09 17:12:54,876: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | 2016-07-09 17:12:54,877: root : INFO : 1.22511196136 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | 2016-07-09 17:12:53,659: root : INFO : lat, lon = 4, 4 2 | 2016-07-09 17:12:53,660: root : INFO : lat, lon = 4, 5 3 | 2016-07-09 17:12:53,660: root : INFO : lat, lon = 5, 0 4 | 2016-07-09 17:12:53,661: root : INFO : lat, lon = 5, 1 5 | 2016-07-09 17:12:53,661: root : INFO : lat, lon = 5, 2 6 | 2016-07-09 17:12:53,661: root : INFO : lat, lon = 5, 3 7 | 2016-07-09 17:12:53,661: root : INFO : lat, lon = 5, 4 8 | 2016-07-09 17:12:53,661: root : INFO : lat, lon = 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | 2016-07-09 17:12:53,656: root : INFO : lat, lon = 2, 2 2 | 2016-07-09 17:12:53,657: root : INFO : lat, lon = 2, 3 3 | 2016-07-09 17:12:53,657: root : INFO : lat, lon = 2, 4 4 | 2016-07-09 17:12:53,657: root : INFO : lat, lon = 2, 5 5 | 2016-07-09 17:12:53,658: root : INFO : lat, lon = 3, 0 6 | 2016-07-09 17:12:53,658: root : INFO : lat, lon = 3, 1 7 | 2016-07-09 17:12:53,658: root : INFO : lat, lon = 3, 2 8 | 2016-07-09 17:12:53,658: root : INFO : lat, lon = 3, 3 9 | 2016-07-09 17:12:53,658: root : INFO : lat, lon = 3, 4 10 | 2016-07-09 17:12:53,659: root : INFO : lat, lon = 3, 5 11 | 2016-07-09 17:12:53,659: root : INFO : lat, lon = 4, 0 12 | 2016-07-09 17:12:53,659: root : INFO : lat, lon = 4, 1 13 | 2016-07-09 17:12:53,659: root : INFO : lat, lon = 4, 2 14 | 2016-07-09 17:12:53,659: root : INFO : lat, lon = 4, 3 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | 2016-07-09 17:12:53,652: root : INFO : lat, lon = 0, 0 2 | 2016-07-09 17:12:53,652: root : INFO : lat, lon = 0, 1 3 | 2016-07-09 17:12:53,653: root : INFO : lat, lon = 0, 2 4 | 2016-07-09 17:12:53,653: root : INFO : lat, lon = 0, 3 5 | 2016-07-09 17:12:53,654: root : INFO : lat, lon = 0, 4 6 | 2016-07-09 17:12:53,654: root : INFO : lat, lon = 0, 5 7 | 2016-07-09 17:12:53,654: root : INFO : lat, lon = 1, 0 8 | 2016-07-09 17:12:53,654: root : INFO : lat, lon = 1, 1 9 | 2016-07-09 17:12:53,655: root : INFO : lat, lon = 1, 2 10 | 2016-07-09 17:12:53,655: root : INFO : lat, lon = 1, 3 11 | 2016-07-09 17:12:53,655: root : INFO : lat, lon = 1, 4 12 | 2016-07-09 17:12:53,656: root : INFO : lat, lon = 1, 5 13 | 2016-07-09 17:12:53,656: root : INFO : lat, lon = 2, 0 14 | 2016-07-09 17:12:53,656: root : INFO : lat, lon = 2, 1 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/root_logger/logfile.log: -------------------------------------------------------------------------------- 1 | WARNING : 2. Log to both file and console 2 | DEBUG : 3. Log to file only 3 | WARNING : 4. Log to both file and console 4 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/rot_fh/_DEL: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/rot_fh/rot_fh.log: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/rot_fh/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/rot_fh/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--2.7-runs/rot_fh/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/child_loggers/OLD child_loggers_stderr.txt: -------------------------------------------------------------------------------- 1 | __main__ : INFO : Starting up... 2 | __main__.sub_noprop : DEBUG : Doing something boring with 0 3 | __main__ : INFO : Doing something special with 0 4 | __main__.sub_noprop : INFO : Doing something SPECIAL with 0 5 | __main__.sub_prop : INFO : Doing something SPECIAL with 0 6 | __main__.sub_noprop : DEBUG : Doing something boring with 1 7 | __main__ : INFO : Doing something special with 1 8 | __main__.sub_noprop : INFO : Doing something SPECIAL with 1 9 | __main__.sub_prop : INFO : Doing something SPECIAL with 1 10 | __main__.sub_noprop : DEBUG : Doing something boring with 2 11 | __main__ : INFO : Doing something special with 2 12 | __main__.sub_noprop : INFO : Doing something SPECIAL with 2 13 | __main__.sub_prop : INFO : Doing something SPECIAL with 2 14 | __main__ : INFO : ... shutting down. 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/child_loggers/child_loggers.log: -------------------------------------------------------------------------------- 1 | examples.child_logger_main: INFO : 2016-07-09 01:10:35,102: Starting up... 2 | examples.child_logger_main: DEBUG : 2016-07-09 01:10:35,102: Doing something boring with 0 3 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 01:10:35,102: Doing something boring with 0 4 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 01:10:35,102: Doing something boring with 0 5 | examples.child_logger_main: INFO : 2016-07-09 01:10:35,103: Doing something special with 0 6 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 01:10:35,103: Doing something SPECIAL with 0 7 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 01:10:35,103: Doing something SPECIAL with 0 8 | examples.child_logger_main: DEBUG : 2016-07-09 01:10:35,103: Doing something boring with 1 9 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 01:10:35,103: Doing something boring with 1 10 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 01:10:35,103: Doing something boring with 1 11 | examples.child_logger_main: INFO : 2016-07-09 01:10:35,103: Doing something special with 1 12 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 01:10:35,103: Doing something SPECIAL with 1 13 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 01:10:35,103: Doing something SPECIAL with 1 14 | examples.child_logger_main: DEBUG : 2016-07-09 01:10:35,103: Doing something boring with 2 15 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 01:10:35,103: Doing something boring with 2 16 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 01:10:35,103: Doing something boring with 2 17 | examples.child_logger_main: INFO : 2016-07-09 01:10:35,103: Doing something special with 2 18 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 01:10:35,103: Doing something SPECIAL with 2 19 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 01:10:35,104: Doing something SPECIAL with 2 20 | examples.child_logger_main: INFO : 2016-07-09 01:10:35,104: ... shutting down. 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/child_loggers2/OLD child_loggers2_stderr.txt: -------------------------------------------------------------------------------- 1 | root : INFO : Starting up... 2 | examples.child_logger2_sub_noprop : DEBUG : Doing something boring with 0 3 | root : WARNING : Doing something special with 0 4 | examples.child_logger2_sub_noprop : INFO : Doing something SPECIAL with 0 5 | examples.child_logger2_sub_prop : INFO : Doing something SPECIAL with 0 6 | examples.child_logger2_sub_noprop : DEBUG : Doing something boring with 1 7 | root : WARNING : Doing something special with 1 8 | examples.child_logger2_sub_noprop : INFO : Doing something SPECIAL with 1 9 | examples.child_logger2_sub_prop : INFO : Doing something SPECIAL with 1 10 | root : INFO : ... shutting down. 11 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/child_loggers2/child_loggers2.log: -------------------------------------------------------------------------------- 1 | root : INFO : 2016-07-09 01:10:35,105: Starting up... 2 | root : DEBUG : 2016-07-09 01:10:35,105: Doing something boring with 0 3 | examples.child_logger2_sub_noprop : DEBUG : 2016-07-09 01:10:35,105: Doing something boring with 0 4 | examples.child_logger2_sub_prop : DEBUG : 2016-07-09 01:10:35,105: Doing something boring with 0 5 | root : WARNING : 2016-07-09 01:10:35,105: Doing something special with 0 6 | examples.child_logger2_sub_noprop : INFO : 2016-07-09 01:10:35,105: Doing something SPECIAL with 0 7 | examples.child_logger2_sub_prop : INFO : 2016-07-09 01:10:35,105: Doing something SPECIAL with 0 8 | root : DEBUG : 2016-07-09 01:10:35,105: Doing something boring with 1 9 | examples.child_logger2_sub_noprop : DEBUG : 2016-07-09 01:10:35,105: Doing something boring with 1 10 | examples.child_logger2_sub_prop : DEBUG : 2016-07-09 01:10:35,105: Doing something boring with 1 11 | root : WARNING : 2016-07-09 01:10:35,105: Doing something special with 1 12 | examples.child_logger2_sub_noprop : INFO : 2016-07-09 01:10:35,105: Doing something SPECIAL with 1 13 | examples.child_logger2_sub_prop : INFO : 2016-07-09 01:10:35,105: Doing something SPECIAL with 1 14 | root : INFO : 2016-07-09 01:10:35,106: ... shutting down. 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc/NOLOCKING-has-NULbytes.txt: -------------------------------------------------------------------------------- 1 | mproc_LOCKING.log -- checking for NUL bytes 2 | 3 | mproc_NOLOCKING.log -- checking for NUL bytes 4 | Line 15 has NUL 5 | Process-7 : __main__ : INFO : 2016-07-09 02:25:43,934: 3: 42 6 | 7 | Line 17 has NUL 8 | Process-6 : __main__ : INFO : 2016-07-09 02:25:43,983: 2: 21 9 | 10 | Line 23 has NUL 11 | Process-7 : __main__ : INFO : 2016-07-09 02:25:43,985: 3: 44 12 | 13 | Line 33 has NUL 14 | Process-5 : __main__ : INFO : 2016-07-09 02:25:44,036: 1: 6 15 | 16 | Line 35 has NUL 17 | Process-6 : __main__ : INFO : 2016-07-09 02:25:44,084: 2: 23 18 | 19 | Line 45 has NUL 20 | Process-7 : __main__ : INFO : 2016-07-09 02:25:44,087: 3: 48 21 | 22 | Line 47 has NUL 23 | Process-7 : __main__ : INFO : 2016-07-09 02:25:44,138: 3: 49 24 | 25 | Line 49 has NUL 26 | Process-7 : __main__ : INFO : 2016-07-09 02:25:44,139: 3: 50 27 | 28 | Line 51 has NUL 29 | Process-6 : __main__ : INFO : 2016-07-09 02:25:44,186: 2: 25 30 | 31 | Line 69 has NUL 32 | Process-5 : __main__ : INFO : 2016-07-09 02:25:44,242: 1: 14 33 | 34 | Line 71 has NUL 35 | Process-6 : __main__ : INFO : 2016-07-09 02:25:44,288: 2: 27 36 | 37 | Line 89 has NUL 38 | Process-5 : __main__ : INFO : 2016-07-09 02:25:44,344: 1: 18 39 | 40 | Line 91 has NUL 41 | Process-6 : __main__ : INFO : 2016-07-09 02:25:44,389: 2: 29 42 | 43 | Line 101 has NUL 44 | Process-7 : __main__ : INFO : 2016-07-09 02:25:44,395: >>>>>> Bye from process-3 45 | 46 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc/check_for_NUL_bytes.py~HEAD: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc_LOCKING.log') 16 | check_for_NUL('mproc_NOLOCKING.log') 17 | 18 | ''' 19 | ''' 20 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc/check_for_NUL_bytes.py~develop: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc_LOCKING.log') 16 | check_for_NUL('mproc_NOLOCKING.log') 17 | 18 | ''' 19 | ''' 20 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc2/check_for_NUL_bytes.py~HEAD: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc2_LOCKING.log') 16 | check_for_NUL('mproc2_NOLOCKING.log') 17 | 18 | ''' 19 | mproc2_LOCKING.log -- checking for NUL bytes 20 | 21 | mproc2_NOLOCKING.log -- checking for NUL bytes 22 | Line 51 has NUL 23 | Process-5 : root : INFO : 2016-07-09 02:31:42,086: 1: 7 24 | 25 | ''' 26 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc2/check_for_NUL_bytes.py~develop: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc2_LOCKING.log') 16 | check_for_NUL('mproc2_NOLOCKING.log') 17 | 18 | ''' 19 | mproc2_LOCKING.log -- checking for NUL bytes 20 | 21 | mproc2_NOLOCKING.log -- checking for NUL bytes 22 | Line 51 has NUL 23 | Process-5 : root : INFO : 2016-07-09 02:31:42,086: 1: 7 24 | 25 | ''' 26 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc2/mproc2-NOLOCKING-has-NULbytes.txt: -------------------------------------------------------------------------------- 1 | mproc2_LOCKING.log -- checking for NUL bytes 2 | 3 | mproc2_NOLOCKING.log -- checking for NUL bytes 4 | Line 51 has NUL 5 | Process-5 : root : INFO : 2016-07-09 02:31:42,086: 1: 7 6 | 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:42,545: INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-06-30 13:40:42,547: INFO : 1.2741289138793945 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-06-30 13:40:42,237: INFO : processing lat, lon = 4, 1 2 | 4, 1 3 | ForkPoolWorker-1: 2016-06-30 13:40:42,311: INFO : processing lat, lon = 4, 3 4 | 4, 3 5 | ForkPoolWorker-3: 2016-06-30 13:40:42,339: INFO : processing lat, lon = 4, 4 6 | 4, 4 7 | ForkPoolWorker-2: 2016-06-30 13:40:42,340: INFO : processing lat, lon = 4, 5 8 | 4, 5 9 | ForkPoolWorker-1: 2016-06-30 13:40:42,413: INFO : processing lat, lon = 5, 0 10 | 5, 0 11 | ForkPoolWorker-3: 2016-06-30 13:40:42,441: INFO : processing lat, lon = 5, 1 12 | 5, 1 13 | ForkPoolWorker-2: 2016-06-30 13:40:42,441: INFO : processing lat, lon = 5, 2 14 | 5, 2 15 | ForkPoolWorker-1: 2016-06-30 13:40:42,515: INFO : processing lat, lon = 5, 3 16 | 5, 3 17 | ForkPoolWorker-3: 2016-06-30 13:40:42,543: INFO : processing lat, lon = 5, 4 18 | 5, 4 19 | ForkPoolWorker-2: 2016-06-30 13:40:42,543: INFO : processing lat, lon = 5, 5 20 | 5, 5 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-06-30 13:40:41,931: INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-3: 2016-06-30 13:40:41,931: INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | ForkPoolWorker-1: 2016-06-30 13:40:42,005: INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | ForkPoolWorker-3: 2016-06-30 13:40:42,033: INFO : processing lat, lon = 3, 2 8 | 3, 2 9 | ForkPoolWorker-2: 2016-06-30 13:40:42,033: INFO : processing lat, lon = 3, 1 10 | 3, 1 11 | ForkPoolWorker-1: 2016-06-30 13:40:42,107: INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | ForkPoolWorker-2: 2016-06-30 13:40:42,135: INFO : processing lat, lon = 3, 5 14 | 3, 5 15 | ForkPoolWorker-3: 2016-06-30 13:40:42,135: INFO : processing lat, lon = 3, 4 16 | 3, 4 17 | ForkPoolWorker-1: 2016-06-30 13:40:42,209: INFO : processing lat, lon = 4, 0 18 | 4, 0 19 | ForkPoolWorker-3: 2016-06-30 13:40:42,237: INFO : processing lat, lon = 4, 2 20 | 4, 2 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-06-30 13:40:41,598: INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | ForkPoolWorker-2: 2016-06-30 13:40:41,618: INFO : processing lat, lon = 1, 1 4 | 1, 1 5 | ForkPoolWorker-3: 2016-06-30 13:40:41,619: INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-1: 2016-06-30 13:40:41,700: INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-2: 2016-06-30 13:40:41,728: INFO : processing lat, lon = 1, 4 10 | 1, 4 11 | ForkPoolWorker-3: 2016-06-30 13:40:41,728: INFO : processing lat, lon = 1, 5 12 | 1, 5 13 | ForkPoolWorker-1: 2016-06-30 13:40:41,802: INFO : processing lat, lon = 2, 0 14 | 2, 0 15 | ForkPoolWorker-2: 2016-06-30 13:40:41,829: INFO : processing lat, lon = 2, 1 16 | 2, 1 17 | ForkPoolWorker-3: 2016-06-30 13:40:41,830: INFO : processing lat, lon = 2, 2 18 | 2, 2 19 | ForkPoolWorker-1: 2016-06-30 13:40:41,904: INFO : processing lat, lon = 2, 3 20 | 2, 3 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:41,302: INFO : lat, lon = 5, 0 2 | MainProcess: 2016-06-30 13:40:41,303: INFO : lat, lon = 5, 1 3 | MainProcess: 2016-06-30 13:40:41,303: INFO : lat, lon = 5, 2 4 | MainProcess: 2016-06-30 13:40:41,304: INFO : lat, lon = 5, 3 5 | MainProcess: 2016-06-30 13:40:41,304: INFO : lat, lon = 5, 4 6 | MainProcess: 2016-06-30 13:40:41,304: INFO : lat, lon = 5, 5 7 | ForkPoolWorker-1: 2016-06-30 13:40:41,393: INFO : processing lat, lon = 0, 0 8 | 0, 0 9 | ForkPoolWorker-2: 2016-06-30 13:40:41,394: INFO : processing lat, lon = 0, 1 10 | 0, 1 11 | ForkPoolWorker-3: 2016-06-30 13:40:41,395: INFO : processing lat, lon = 0, 2 12 | 0, 2 13 | ForkPoolWorker-1: 2016-06-30 13:40:41,496: INFO : processing lat, lon = 0, 3 14 | 0, 3 15 | ForkPoolWorker-2: 2016-06-30 13:40:41,517: INFO : processing lat, lon = 0, 4 16 | 0, 4 17 | ForkPoolWorker-3: 2016-06-30 13:40:41,517: INFO : processing lat, lon = 0, 5 18 | 0, 5 19 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:41,297: INFO : lat, lon = 2, 3 2 | MainProcess: 2016-06-30 13:40:41,298: INFO : lat, lon = 2, 4 3 | MainProcess: 2016-06-30 13:40:41,298: INFO : lat, lon = 2, 5 4 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 0 5 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 1 6 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 2 7 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 3 8 | MainProcess: 2016-06-30 13:40:41,300: INFO : lat, lon = 3, 4 9 | MainProcess: 2016-06-30 13:40:41,300: INFO : lat, lon = 3, 5 10 | MainProcess: 2016-06-30 13:40:41,300: INFO : lat, lon = 4, 0 11 | MainProcess: 2016-06-30 13:40:41,301: INFO : lat, lon = 4, 1 12 | MainProcess: 2016-06-30 13:40:41,301: INFO : lat, lon = 4, 2 13 | MainProcess: 2016-06-30 13:40:41,301: INFO : lat, lon = 4, 3 14 | MainProcess: 2016-06-30 13:40:41,302: INFO : lat, lon = 4, 4 15 | MainProcess: 2016-06-30 13:40:41,302: INFO : lat, lon = 4, 5 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:41,280: INFO : lat, lon = 0, 0 2 | MainProcess: 2016-06-30 13:40:41,290: INFO : lat, lon = 0, 1 3 | MainProcess: 2016-06-30 13:40:41,292: INFO : lat, lon = 0, 2 4 | MainProcess: 2016-06-30 13:40:41,292: INFO : lat, lon = 0, 3 5 | MainProcess: 2016-06-30 13:40:41,293: INFO : lat, lon = 0, 4 6 | MainProcess: 2016-06-30 13:40:41,294: INFO : lat, lon = 0, 5 7 | MainProcess: 2016-06-30 13:40:41,294: INFO : lat, lon = 1, 0 8 | MainProcess: 2016-06-30 13:40:41,294: INFO : lat, lon = 1, 1 9 | MainProcess: 2016-06-30 13:40:41,295: INFO : lat, lon = 1, 2 10 | MainProcess: 2016-06-30 13:40:41,295: INFO : lat, lon = 1, 3 11 | MainProcess: 2016-06-30 13:40:41,296: INFO : lat, lon = 1, 4 12 | MainProcess: 2016-06-30 13:40:41,296: INFO : lat, lon = 1, 5 13 | MainProcess: 2016-06-30 13:40:41,296: INFO : lat, lon = 2, 0 14 | MainProcess: 2016-06-30 13:40:41,297: INFO : lat, lon = 2, 1 15 | MainProcess: 2016-06-30 13:40:41,297: INFO : lat, lon = 2, 2 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:04,864: INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-06-30 13:44:04,866: INFO : 1.2764499187469482 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-06-30 13:44:04,558: INFO : processing lat, lon = 4, 2 2 | 4, 2 3 | ForkPoolWorker-1: 2016-06-30 13:44:04,626: INFO : processing lat, lon = 4, 3 4 | 4, 3 5 | ForkPoolWorker-3: 2016-06-30 13:44:04,658: INFO : processing lat, lon = 4, 4 6 | 4, 4 7 | ForkPoolWorker-2: 2016-06-30 13:44:04,659: INFO : processing lat, lon = 4, 5 8 | 4, 5 9 | ForkPoolWorker-1: 2016-06-30 13:44:04,728: INFO : processing lat, lon = 5, 0 10 | 5, 0 11 | ForkPoolWorker-3: 2016-06-30 13:44:04,760: INFO : processing lat, lon = 5, 1 12 | 5, 1 13 | ForkPoolWorker-2: 2016-06-30 13:44:04,760: INFO : processing lat, lon = 5, 2 14 | 5, 2 15 | ForkPoolWorker-1: 2016-06-30 13:44:04,830: INFO : processing lat, lon = 5, 3 16 | 5, 3 17 | ForkPoolWorker-3: 2016-06-30 13:44:04,863: INFO : processing lat, lon = 5, 4 18 | 5, 4 19 | ForkPoolWorker-2: 2016-06-30 13:44:04,863: INFO : processing lat, lon = 5, 5 20 | 5, 5 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: 2016-06-30 13:44:04,251: INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-2: 2016-06-30 13:44:04,253: INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | ForkPoolWorker-1: 2016-06-30 13:44:04,322: INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | ForkPoolWorker-3: 2016-06-30 13:44:04,353: INFO : processing lat, lon = 3, 1 8 | 3, 1 9 | ForkPoolWorker-2: 2016-06-30 13:44:04,355: INFO : processing lat, lon = 3, 2 10 | 3, 2 11 | ForkPoolWorker-1: 2016-06-30 13:44:04,423: INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | ForkPoolWorker-3: 2016-06-30 13:44:04,455: INFO : processing lat, lon = 3, 4 14 | 3, 4 15 | ForkPoolWorker-2: 2016-06-30 13:44:04,456: INFO : processing lat, lon = 3, 5 16 | 3, 5 17 | ForkPoolWorker-1: 2016-06-30 13:44:04,525: INFO : processing lat, lon = 4, 0 18 | 4, 0 19 | ForkPoolWorker-3: 2016-06-30 13:44:04,556: INFO : processing lat, lon = 4, 1 20 | 4, 1 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-06-30 13:44:03,915: INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | ForkPoolWorker-3: 2016-06-30 13:44:03,947: INFO : processing lat, lon = 1, 1 4 | 1, 1 5 | ForkPoolWorker-2: 2016-06-30 13:44:03,947: INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-1: 2016-06-30 13:44:04,016: INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-3: 2016-06-30 13:44:04,049: INFO : processing lat, lon = 1, 4 10 | 1, 4 11 | ForkPoolWorker-2: 2016-06-30 13:44:04,049: INFO : processing lat, lon = 1, 5 12 | 1, 5 13 | ForkPoolWorker-1: 2016-06-30 13:44:04,118: INFO : processing lat, lon = 2, 0 14 | 2, 0 15 | ForkPoolWorker-3: 2016-06-30 13:44:04,150: INFO : processing lat, lon = 2, 1 16 | 2, 1 17 | ForkPoolWorker-2: 2016-06-30 13:44:04,151: INFO : processing lat, lon = 2, 2 18 | 2, 2 19 | ForkPoolWorker-1: 2016-06-30 13:44:04,220: INFO : processing lat, lon = 2, 3 20 | 2, 3 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:03,619: INFO : lat, lon = 5, 0 2 | MainProcess: 2016-06-30 13:44:03,620: INFO : lat, lon = 5, 1 3 | MainProcess: 2016-06-30 13:44:03,620: INFO : lat, lon = 5, 2 4 | MainProcess: 2016-06-30 13:44:03,621: INFO : lat, lon = 5, 3 5 | MainProcess: 2016-06-30 13:44:03,621: INFO : lat, lon = 5, 4 6 | MainProcess: 2016-06-30 13:44:03,621: INFO : lat, lon = 5, 5 7 | ForkPoolWorker-1: 2016-06-30 13:44:03,709: INFO : processing lat, lon = 0, 0 8 | 0, 0 9 | ForkPoolWorker-2: 2016-06-30 13:44:03,710: INFO : processing lat, lon = 0, 1 10 | 0, 1 11 | ForkPoolWorker-3: 2016-06-30 13:44:03,712: INFO : processing lat, lon = 0, 2 12 | 0, 2 13 | ForkPoolWorker-1: 2016-06-30 13:44:03,812: INFO : processing lat, lon = 0, 3 14 | 0, 3 15 | ForkPoolWorker-3: 2016-06-30 13:44:03,839: INFO : processing lat, lon = 0, 5 16 | 0, 5 17 | ForkPoolWorker-2: 2016-06-30 13:44:03,839: INFO : processing lat, lon = 0, 4 18 | 0, 4 19 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:03,614: INFO : lat, lon = 2, 3 2 | MainProcess: 2016-06-30 13:44:03,615: INFO : lat, lon = 2, 4 3 | MainProcess: 2016-06-30 13:44:03,615: INFO : lat, lon = 2, 5 4 | MainProcess: 2016-06-30 13:44:03,616: INFO : lat, lon = 3, 0 5 | MainProcess: 2016-06-30 13:44:03,616: INFO : lat, lon = 3, 1 6 | MainProcess: 2016-06-30 13:44:03,616: INFO : lat, lon = 3, 2 7 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 3, 3 8 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 3, 4 9 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 3, 5 10 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 4, 0 11 | MainProcess: 2016-06-30 13:44:03,618: INFO : lat, lon = 4, 1 12 | MainProcess: 2016-06-30 13:44:03,618: INFO : lat, lon = 4, 2 13 | MainProcess: 2016-06-30 13:44:03,618: INFO : lat, lon = 4, 3 14 | MainProcess: 2016-06-30 13:44:03,619: INFO : lat, lon = 4, 4 15 | MainProcess: 2016-06-30 13:44:03,619: INFO : lat, lon = 4, 5 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:03,597: INFO : lat, lon = 0, 0 2 | MainProcess: 2016-06-30 13:44:03,607: INFO : lat, lon = 0, 1 3 | MainProcess: 2016-06-30 13:44:03,609: INFO : lat, lon = 0, 2 4 | MainProcess: 2016-06-30 13:44:03,609: INFO : lat, lon = 0, 3 5 | MainProcess: 2016-06-30 13:44:03,610: INFO : lat, lon = 0, 4 6 | MainProcess: 2016-06-30 13:44:03,610: INFO : lat, lon = 0, 5 7 | MainProcess: 2016-06-30 13:44:03,611: INFO : lat, lon = 1, 0 8 | MainProcess: 2016-06-30 13:44:03,611: INFO : lat, lon = 1, 1 9 | MainProcess: 2016-06-30 13:44:03,611: INFO : lat, lon = 1, 2 10 | MainProcess: 2016-06-30 13:44:03,612: INFO : lat, lon = 1, 3 11 | MainProcess: 2016-06-30 13:44:03,612: INFO : lat, lon = 1, 4 12 | MainProcess: 2016-06-30 13:44:03,613: INFO : lat, lon = 1, 5 13 | MainProcess: 2016-06-30 13:44:03,613: INFO : lat, lon = 2, 0 14 | MainProcess: 2016-06-30 13:44:03,614: INFO : lat, lon = 2, 1 15 | MainProcess: 2016-06-30 13:44:03,614: INFO : lat, lon = 2, 2 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: INFO : 1.2544889450073242 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: INFO : processing lat, lon = 0, 2 2 | 0, 2 3 | ForkPoolWorker-3: INFO : processing lat, lon = 0, 5 4 | 0, 5 5 | ForkPoolWorker-3: INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-3: INFO : processing lat, lon = 1, 5 8 | 1, 5 9 | ForkPoolWorker-3: INFO : processing lat, lon = 2, 2 10 | 2, 2 11 | ForkPoolWorker-3: INFO : processing lat, lon = 2, 5 12 | 2, 5 13 | ForkPoolWorker-3: INFO : processing lat, lon = 3, 2 14 | 3, 2 15 | ForkPoolWorker-3: INFO : processing lat, lon = 3, 5 16 | 3, 5 17 | ForkPoolWorker-3: INFO : processing lat, lon = 4, 2 18 | 4, 2 19 | ForkPoolWorker-3: INFO : processing lat, lon = 4, 5 20 | 4, 5 21 | ForkPoolWorker-3: INFO : processing lat, lon = 5, 2 22 | 5, 2 23 | ForkPoolWorker-3: INFO : processing lat, lon = 5, 5 24 | 5, 5 25 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: INFO : processing lat, lon = 0, 1 2 | 0, 1 3 | ForkPoolWorker-2: INFO : processing lat, lon = 0, 4 4 | 0, 4 5 | ForkPoolWorker-2: INFO : processing lat, lon = 1, 1 6 | 1, 1 7 | ForkPoolWorker-2: INFO : processing lat, lon = 1, 4 8 | 1, 4 9 | ForkPoolWorker-2: INFO : processing lat, lon = 2, 1 10 | 2, 1 11 | ForkPoolWorker-2: INFO : processing lat, lon = 2, 4 12 | 2, 4 13 | ForkPoolWorker-2: INFO : processing lat, lon = 3, 1 14 | 3, 1 15 | ForkPoolWorker-2: INFO : processing lat, lon = 3, 4 16 | 3, 4 17 | ForkPoolWorker-2: INFO : processing lat, lon = 4, 0 18 | 4, 0 19 | ForkPoolWorker-2: INFO : processing lat, lon = 4, 4 20 | 4, 4 21 | ForkPoolWorker-2: INFO : processing lat, lon = 5, 0 22 | 5, 0 23 | ForkPoolWorker-2: INFO : processing lat, lon = 5, 4 24 | 5, 4 25 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: INFO : processing lat, lon = 0, 0 2 | 0, 0 3 | ForkPoolWorker-1: INFO : processing lat, lon = 0, 3 4 | 0, 3 5 | ForkPoolWorker-1: INFO : processing lat, lon = 1, 0 6 | 1, 0 7 | ForkPoolWorker-1: INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-1: INFO : processing lat, lon = 2, 0 10 | 2, 0 11 | ForkPoolWorker-1: INFO : processing lat, lon = 2, 3 12 | 2, 3 13 | ForkPoolWorker-1: INFO : processing lat, lon = 3, 0 14 | 3, 0 15 | ForkPoolWorker-1: INFO : processing lat, lon = 3, 3 16 | 3, 3 17 | ForkPoolWorker-1: INFO : processing lat, lon = 4, 1 18 | 4, 1 19 | ForkPoolWorker-1: INFO : processing lat, lon = 4, 3 20 | 4, 3 21 | ForkPoolWorker-1: INFO : processing lat, lon = 5, 1 22 | 5, 1 23 | ForkPoolWorker-1: INFO : processing lat, lon = 5, 3 24 | 5, 3 25 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | MainProcess: INFO : lat, lon = 4, 2 2 | MainProcess: INFO : lat, lon = 4, 3 3 | MainProcess: INFO : lat, lon = 4, 4 4 | MainProcess: INFO : lat, lon = 4, 5 5 | MainProcess: INFO : lat, lon = 5, 0 6 | MainProcess: INFO : lat, lon = 5, 1 7 | MainProcess: INFO : lat, lon = 5, 2 8 | MainProcess: INFO : lat, lon = 5, 3 9 | MainProcess: INFO : lat, lon = 5, 4 10 | MainProcess: INFO : lat, lon = 5, 5 11 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: INFO : lat, lon = 0, 0 2 | MainProcess: INFO : lat, lon = 0, 1 3 | MainProcess: INFO : lat, lon = 0, 2 4 | MainProcess: INFO : lat, lon = 0, 3 5 | MainProcess: INFO : lat, lon = 0, 4 6 | MainProcess: INFO : lat, lon = 0, 5 7 | MainProcess: INFO : lat, lon = 1, 0 8 | MainProcess: INFO : lat, lon = 1, 1 9 | MainProcess: INFO : lat, lon = 1, 2 10 | MainProcess: INFO : lat, lon = 1, 3 11 | MainProcess: INFO : lat, lon = 1, 4 12 | MainProcess: INFO : lat, lon = 1, 5 13 | MainProcess: INFO : lat, lon = 2, 0 14 | MainProcess: INFO : lat, lon = 2, 1 15 | MainProcess: INFO : lat, lon = 2, 2 16 | MainProcess: INFO : lat, lon = 2, 3 17 | MainProcess: INFO : lat, lon = 2, 4 18 | MainProcess: INFO : lat, lon = 2, 5 19 | MainProcess: INFO : lat, lon = 3, 0 20 | MainProcess: INFO : lat, lon = 3, 1 21 | MainProcess: INFO : lat, lon = 3, 2 22 | MainProcess: INFO : lat, lon = 3, 3 23 | MainProcess: INFO : lat, lon = 3, 4 24 | MainProcess: INFO : lat, lon = 3, 5 25 | MainProcess: INFO : lat, lon = 4, 0 26 | MainProcess: INFO : lat, lon = 4, 1 27 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/_temp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/_temp -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: 2016-07-09 15:01:38,237: root : INFO : processing lat, lon = 5, 2 2 | 5, 2 3 | ForkPoolWorker-1: 2016-07-09 15:01:38,315: root : INFO : processing lat, lon = 5, 3 4 | 5, 3 5 | ForkPoolWorker-2: 2016-07-09 15:01:38,329: root : INFO : processing lat, lon = 5, 4 6 | 5, 4 7 | ForkPoolWorker-3: 2016-07-09 15:01:38,466: root : INFO : processing lat, lon = 5, 5 8 | 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-07-09 15:01:37,579: root : INFO : processing lat, lon = 4, 0 2 | 4, 0 3 | ForkPoolWorker-2: 2016-07-09 15:01:37,593: root : INFO : processing lat, lon = 4, 1 4 | 4, 1 5 | ForkPoolWorker-3: 2016-07-09 15:01:37,683: root : INFO : processing lat, lon = 4, 2 6 | 4, 2 7 | ForkPoolWorker-1: 2016-07-09 15:01:38,074: root : INFO : processing lat, lon = 4, 3 8 | 4, 3 9 | ForkPoolWorker-2: 2016-07-09 15:01:38,087: root : INFO : processing lat, lon = 4, 4 10 | 4, 4 11 | ForkPoolWorker-3: 2016-07-09 15:01:38,117: root : INFO : processing lat, lon = 4, 5 12 | 4, 5 13 | ForkPoolWorker-1: 2016-07-09 15:01:38,199: root : INFO : processing lat, lon = 5, 0 14 | 5, 0 15 | ForkPoolWorker-2: 2016-07-09 15:01:38,225: root : INFO : processing lat, lon = 5, 1 16 | 5, 1 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.10: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-07-09 15:01:34,861: root : INFO : processing lat, lon = 2, 0 2 | 2, 0 3 | MainProcess: 2016-07-09 15:01:34,882: root : INFO : lat, lon = 2, 5 4 | ForkPoolWorker-2: 2016-07-09 15:01:34,937: root : INFO : processing lat, lon = 2, 1 5 | 2, 1 6 | ForkPoolWorker-3: 2016-07-09 15:01:34,945: root : INFO : processing lat, lon = 2, 2 7 | 2, 2 8 | MainProcess: 2016-07-09 15:01:34,960: root : INFO : lat, lon = 3, 0 9 | MainProcess: 2016-07-09 15:01:35,025: root : INFO : lat, lon = 3, 1 10 | ForkPoolWorker-1: 2016-07-09 15:01:35,052: root : INFO : processing lat, lon = 2, 3 11 | 2, 3 12 | MainProcess: 2016-07-09 15:01:35,083: root : INFO : lat, lon = 3, 2 13 | MainProcess: 2016-07-09 15:01:35,092: root : INFO : lat, lon = 3, 3 14 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-07-09 15:01:37,193: root : INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-3: 2016-07-09 15:01:37,265: root : INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | ForkPoolWorker-1: 2016-07-09 15:01:37,289: root : INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | ForkPoolWorker-2: 2016-07-09 15:01:37,308: root : INFO : processing lat, lon = 3, 1 8 | 3, 1 9 | ForkPoolWorker-3: 2016-07-09 15:01:37,407: root : INFO : processing lat, lon = 3, 2 10 | 3, 2 11 | ForkPoolWorker-1: 2016-07-09 15:01:37,413: root : INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | ForkPoolWorker-2: 2016-07-09 15:01:37,462: root : INFO : processing lat, lon = 3, 4 14 | 3, 4 15 | ForkPoolWorker-3: 2016-07-09 15:01:37,519: root : INFO : processing lat, lon = 3, 5 16 | 3, 5 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: 2016-07-09 15:01:36,784: root : INFO : processing lat, lon = 1, 2 2 | 1, 2 3 | ForkPoolWorker-1: 2016-07-09 15:01:36,871: root : INFO : processing lat, lon = 1, 3 4 | 1, 3 5 | ForkPoolWorker-2: 2016-07-09 15:01:36,879: root : INFO : processing lat, lon = 1, 4 6 | 1, 4 7 | ForkPoolWorker-3: 2016-07-09 15:01:37,044: root : INFO : processing lat, lon = 1, 5 8 | 1, 5 9 | ForkPoolWorker-1: 2016-07-09 15:01:37,050: root : INFO : processing lat, lon = 2, 0 10 | 2, 0 11 | ForkPoolWorker-2: 2016-07-09 15:01:37,085: root : INFO : processing lat, lon = 2, 1 12 | 2, 1 13 | ForkPoolWorker-3: 2016-07-09 15:01:37,145: root : INFO : processing lat, lon = 2, 2 14 | 2, 2 15 | ForkPoolWorker-1: 2016-07-09 15:01:37,176: root : INFO : processing lat, lon = 2, 3 16 | 2, 3 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-07-09 15:01:36,328: root : INFO : processing lat, lon = 0, 0 2 | 0, 0 3 | ForkPoolWorker-2: 2016-07-09 15:01:36,328: root : INFO : processing lat, lon = 0, 1 4 | 0, 1 5 | ForkPoolWorker-3: 2016-07-09 15:01:36,329: root : INFO : processing lat, lon = 0, 2 6 | 0, 2 7 | ForkPoolWorker-1: 2016-07-09 15:01:36,635: root : INFO : processing lat, lon = 0, 3 8 | 0, 3 9 | ForkPoolWorker-2: 2016-07-09 15:01:36,637: root : INFO : processing lat, lon = 0, 4 10 | 0, 4 11 | ForkPoolWorker-3: 2016-07-09 15:01:36,651: root : INFO : processing lat, lon = 0, 5 12 | 0, 5 13 | ForkPoolWorker-1: 2016-07-09 15:01:36,745: root : INFO : processing lat, lon = 1, 0 14 | 1, 0 15 | ForkPoolWorker-2: 2016-07-09 15:01:36,773: root : INFO : processing lat, lon = 1, 1 16 | 1, 1 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 15:01:36,059: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-07-09 15:01:36,209: root : INFO : 2.054940938949585 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-07-09 15:01:35,777: root : INFO : processing lat, lon = 5, 0 2 | 5, 0 3 | ForkPoolWorker-2: 2016-07-09 15:01:35,815: root : INFO : processing lat, lon = 5, 1 4 | 5, 1 5 | ForkPoolWorker-3: 2016-07-09 15:01:35,820: root : INFO : processing lat, lon = 5, 2 6 | 5, 2 7 | ForkPoolWorker-1: 2016-07-09 15:01:35,996: root : INFO : processing lat, lon = 5, 3 8 | 5, 3 9 | ForkPoolWorker-2: 2016-07-09 15:01:36,023: root : INFO : processing lat, lon = 5, 4 10 | 5, 4 11 | ForkPoolWorker-3: 2016-07-09 15:01:36,044: root : INFO : processing lat, lon = 5, 5 12 | 5, 5 13 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.7: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-07-09 15:01:35,358: root : INFO : processing lat, lon = 3, 4 2 | 3, 4 3 | ForkPoolWorker-3: 2016-07-09 15:01:35,393: root : INFO : processing lat, lon = 4, 0 4 | 4, 0 5 | ForkPoolWorker-1: 2016-07-09 15:01:35,393: root : INFO : processing lat, lon = 3, 5 6 | 3, 5 7 | ForkPoolWorker-2: 2016-07-09 15:01:35,562: root : INFO : processing lat, lon = 4, 1 8 | 4, 1 9 | ForkPoolWorker-3: 2016-07-09 15:01:35,574: root : INFO : processing lat, lon = 4, 2 10 | 4, 2 11 | ForkPoolWorker-1: 2016-07-09 15:01:35,644: root : INFO : processing lat, lon = 4, 3 12 | 4, 3 13 | ForkPoolWorker-2: 2016-07-09 15:01:35,669: root : INFO : processing lat, lon = 4, 4 14 | 4, 4 15 | ForkPoolWorker-3: 2016-07-09 15:01:35,683: root : INFO : processing lat, lon = 4, 5 16 | 4, 5 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.8: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 15:01:35,239: root : INFO : lat, lon = 4, 5 2 | MainProcess: 2016-07-09 15:01:35,240: root : INFO : lat, lon = 5, 0 3 | MainProcess: 2016-07-09 15:01:35,241: root : INFO : lat, lon = 5, 1 4 | MainProcess: 2016-07-09 15:01:35,241: root : INFO : lat, lon = 5, 2 5 | MainProcess: 2016-07-09 15:01:35,241: root : INFO : lat, lon = 5, 3 6 | MainProcess: 2016-07-09 15:01:35,242: root : INFO : lat, lon = 5, 4 7 | MainProcess: 2016-07-09 15:01:35,242: root : INFO : lat, lon = 5, 5 8 | ForkPoolWorker-2: 2016-07-09 15:01:35,257: root : INFO : processing lat, lon = 3, 1 9 | 3, 1 10 | ForkPoolWorker-1: 2016-07-09 15:01:35,291: root : INFO : processing lat, lon = 3, 3 11 | 3, 3 12 | ForkPoolWorker-3: 2016-07-09 15:01:35,291: root : INFO : processing lat, lon = 3, 2 13 | 3, 2 14 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/LOCKING/rot_fh.log.9: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-07-09 15:01:35,109: root : INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-3: 2016-07-09 15:01:35,115: root : INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | MainProcess: 2016-07-09 15:01:35,132: root : INFO : lat, lon = 3, 4 6 | ForkPoolWorker-1: 2016-07-09 15:01:35,186: root : INFO : processing lat, lon = 3, 0 7 | 3, 0 8 | MainProcess: 2016-07-09 15:01:35,190: root : INFO : lat, lon = 3, 5 9 | MainProcess: 2016-07-09 15:01:35,191: root : INFO : lat, lon = 4, 0 10 | MainProcess: 2016-07-09 15:01:35,192: root : INFO : lat, lon = 4, 1 11 | MainProcess: 2016-07-09 15:01:35,192: root : INFO : lat, lon = 4, 2 12 | MainProcess: 2016-07-09 15:01:35,238: root : INFO : lat, lon = 4, 3 13 | MainProcess: 2016-07-09 15:01:35,239: root : INFO : lat, lon = 4, 4 14 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: DEBUG : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558}} 2 | MainProcess: DEBUG : 0.4484539031982422 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: INFO : processing lat, lon = 1, 4 2 | 1, 4 3 | ForkPoolWorker-1: INFO : processing lat, lon = 3, 0 4 | 3, 0 5 | ForkPoolWorker-3: INFO : processing lat, lon = 3, 1 6 | 3, 1 7 | ForkPoolWorker-5: INFO : processing lat, lon = 4, 1 8 | 4, 1 9 | ForkPoolWorker-2: INFO : processing lat, lon = 4, 2 10 | 4, 2 11 | ForkPoolWorker-1: INFO : processing lat, lon = 4, 3 12 | 4, 3 13 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-8: INFO : processing lat, lon = 1, 2 2 | 1, 2 3 | ForkPoolWorker-8: INFO : processing lat, lon = 2, 4 4 | 2, 4 5 | ForkPoolWorker-8: INFO : processing lat, lon = 4, 0 6 | 4, 0 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-6: INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | ForkPoolWorker-6: INFO : processing lat, lon = 2, 3 4 | 2, 3 5 | ForkPoolWorker-6: INFO : processing lat, lon = 3, 4 6 | 3, 4 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-7: INFO : processing lat, lon = 1, 1 2 | 1, 1 3 | ForkPoolWorker-7: INFO : processing lat, lon = 2, 2 4 | 2, 2 5 | ForkPoolWorker-7: INFO : processing lat, lon = 3, 3 6 | 3, 3 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-4: INFO : processing lat, lon = 0, 3 2 | 0, 3 3 | ForkPoolWorker-4: INFO : processing lat, lon = 2, 1 4 | 2, 1 5 | ForkPoolWorker-4: INFO : processing lat, lon = 3, 2 6 | 3, 2 7 | ForkPoolWorker-4: INFO : processing lat, lon = 4, 4 8 | 4, 4 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log: -------------------------------------------------------------------------------- 1 | 2016-07-09 15:01:38,487: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | 2016-07-09 15:01:38,561: root : INFO : 2.3466010093688965 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | 2016-07-09 15:01:36,257: root : INFO : lat, lon = 4, 4 2 | 2016-07-09 15:01:36,320: root : INFO : lat, lon = 4, 5 3 | 2016-07-09 15:01:36,320: root : INFO : lat, lon = 5, 0 4 | 2016-07-09 15:01:36,320: root : INFO : lat, lon = 5, 1 5 | 2016-07-09 15:01:36,320: root : INFO : lat, lon = 5, 2 6 | 2016-07-09 15:01:36,320: root : INFO : lat, lon = 5, 3 7 | 2016-07-09 15:01:36,320: root : INFO : lat, lon = 5, 4 8 | 2016-07-09 15:01:36,321: root : INFO : lat, lon = 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | 2016-07-09 15:01:36,231: root : INFO : lat, lon = 2, 2 2 | 2016-07-09 15:01:36,255: root : INFO : lat, lon = 2, 3 3 | 2016-07-09 15:01:36,255: root : INFO : lat, lon = 2, 4 4 | 2016-07-09 15:01:36,255: root : INFO : lat, lon = 2, 5 5 | 2016-07-09 15:01:36,255: root : INFO : lat, lon = 3, 0 6 | 2016-07-09 15:01:36,255: root : INFO : lat, lon = 3, 1 7 | 2016-07-09 15:01:36,255: root : INFO : lat, lon = 3, 2 8 | 2016-07-09 15:01:36,256: root : INFO : lat, lon = 3, 3 9 | 2016-07-09 15:01:36,256: root : INFO : lat, lon = 3, 4 10 | 2016-07-09 15:01:36,256: root : INFO : lat, lon = 3, 5 11 | 2016-07-09 15:01:36,256: root : INFO : lat, lon = 4, 0 12 | 2016-07-09 15:01:36,256: root : INFO : lat, lon = 4, 1 13 | 2016-07-09 15:01:36,256: root : INFO : lat, lon = 4, 2 14 | 2016-07-09 15:01:36,257: root : INFO : lat, lon = 4, 3 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | 2016-07-09 15:01:36,214: root : INFO : lat, lon = 0, 0 2 | 2016-07-09 15:01:36,227: root : INFO : lat, lon = 0, 1 3 | 2016-07-09 15:01:36,228: root : INFO : lat, lon = 0, 2 4 | 2016-07-09 15:01:36,228: root : INFO : lat, lon = 0, 3 5 | 2016-07-09 15:01:36,228: root : INFO : lat, lon = 0, 4 6 | 2016-07-09 15:01:36,228: root : INFO : lat, lon = 0, 5 7 | 2016-07-09 15:01:36,229: root : INFO : lat, lon = 1, 0 8 | 2016-07-09 15:01:36,229: root : INFO : lat, lon = 1, 1 9 | 2016-07-09 15:01:36,229: root : INFO : lat, lon = 1, 2 10 | 2016-07-09 15:01:36,230: root : INFO : lat, lon = 1, 3 11 | 2016-07-09 15:01:36,230: root : INFO : lat, lon = 1, 4 12 | 2016-07-09 15:01:36,230: root : INFO : lat, lon = 1, 5 13 | 2016-07-09 15:01:36,231: root : INFO : lat, lon = 2, 0 14 | 2016-07-09 15:01:36,231: root : INFO : lat, lon = 2, 1 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/root_logger/logfile.log~HEAD: -------------------------------------------------------------------------------- 1 | WARNING : 2. Log to both file and console 2 | DEBUG : 3. Log to file only 3 | WARNING : 4. Log to both file and console 4 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/root_logger/logfile.log~develop: -------------------------------------------------------------------------------- 1 | WARNING : 2. Log to both file and console 2 | DEBUG : 3. Log to file only 3 | WARNING : 4. Log to both file and console 4 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.10: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.2~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.2~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.3~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.3~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.4~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.4~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.5~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.5~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.6~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.6~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.7~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.7~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.8~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.8~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.9~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log.9~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log~HEAD: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (I)/rot_fh/rot_fh.log~develop: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/child_loggers/child_loggers.log: -------------------------------------------------------------------------------- 1 | examples.child_logger_main: INFO : 2016-07-09 16:41:22,342: Starting up... 2 | examples.child_logger_main: DEBUG : 2016-07-09 16:41:22,343: Doing something boring with 0 3 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 16:41:22,343: Doing something boring with 0 4 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 16:41:22,343: Doing something boring with 0 5 | examples.child_logger_main: INFO : 2016-07-09 16:41:22,343: Doing something special with 0 6 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 16:41:22,343: Doing something SPECIAL with 0 7 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 16:41:22,343: Doing something SPECIAL with 0 8 | examples.child_logger_main: DEBUG : 2016-07-09 16:41:22,344: Doing something boring with 1 9 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 16:41:22,344: Doing something boring with 1 10 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 16:41:22,344: Doing something boring with 1 11 | examples.child_logger_main: INFO : 2016-07-09 16:41:22,344: Doing something special with 1 12 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 16:41:22,344: Doing something SPECIAL with 1 13 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 16:41:22,344: Doing something SPECIAL with 1 14 | examples.child_logger_main: DEBUG : 2016-07-09 16:41:22,345: Doing something boring with 2 15 | examples.child_logger_main.sub_noprop: DEBUG : 2016-07-09 16:41:22,345: Doing something boring with 2 16 | examples.child_logger_main.sub_prop: DEBUG : 2016-07-09 16:41:22,345: Doing something boring with 2 17 | examples.child_logger_main: INFO : 2016-07-09 16:41:22,345: Doing something special with 2 18 | examples.child_logger_main.sub_noprop: INFO : 2016-07-09 16:41:22,345: Doing something SPECIAL with 2 19 | examples.child_logger_main.sub_prop: INFO : 2016-07-09 16:41:22,345: Doing something SPECIAL with 2 20 | examples.child_logger_main: INFO : 2016-07-09 16:41:22,346: ... shutting down. 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/child_loggers2/child_loggers2.log: -------------------------------------------------------------------------------- 1 | root : INFO : 2016-07-09 16:41:22,367: Starting up... 2 | root : DEBUG : 2016-07-09 16:41:22,367: Doing something boring with 0 3 | examples.child_logger2_sub_noprop : DEBUG : 2016-07-09 16:41:22,368: Doing something boring with 0 4 | examples.child_logger2_sub_prop : DEBUG : 2016-07-09 16:41:22,368: Doing something boring with 0 5 | root : WARNING : 2016-07-09 16:41:22,368: Doing something special with 0 6 | examples.child_logger2_sub_noprop : INFO : 2016-07-09 16:41:22,368: Doing something SPECIAL with 0 7 | examples.child_logger2_sub_prop : INFO : 2016-07-09 16:41:22,368: Doing something SPECIAL with 0 8 | root : DEBUG : 2016-07-09 16:41:22,368: Doing something boring with 1 9 | examples.child_logger2_sub_noprop : DEBUG : 2016-07-09 16:41:22,368: Doing something boring with 1 10 | examples.child_logger2_sub_prop : DEBUG : 2016-07-09 16:41:22,368: Doing something boring with 1 11 | root : WARNING : 2016-07-09 16:41:22,368: Doing something special with 1 12 | examples.child_logger2_sub_noprop : INFO : 2016-07-09 16:41:22,369: Doing something SPECIAL with 1 13 | examples.child_logger2_sub_prop : INFO : 2016-07-09 16:41:22,369: Doing something SPECIAL with 1 14 | root : INFO : 2016-07-09 16:41:22,369: ... shutting down. 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc/check_for_NUL_bytes.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc_LOCKING.log') 16 | check_for_NUL('mproc_NOLOCKING.log') 17 | 18 | ''' 19 | ''' 20 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc2/check_for_NUL_bytes.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | 4 | def check_for_NUL(filename): 5 | with open(filename, 'r') as f: 6 | lines = f.readlines() 7 | 8 | print('%s -- checking for NUL bytes' % filename) 9 | for i, line in enumerate(lines): 10 | if 0 in (ord(c) for c in line): 11 | print("Line %d has NUL" % i) 12 | print(line) 13 | print('') 14 | 15 | check_for_NUL('mproc2_LOCKING.log') 16 | check_for_NUL('mproc2_NOLOCKING.log') 17 | 18 | ''' 19 | mproc2_LOCKING.log -- checking for NUL bytes 20 | 21 | mproc2_NOLOCKING.log -- checking for NUL bytes 22 | Line 51 has NUL 23 | ''' 24 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco/logfile (NOLOCKING).log: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 16:41:25,000: root : INFO : lat, lon = 0, 0 2 | MainProcess: 2016-07-09 16:41:25,001: root : INFO : lat, lon = 0, 1 3 | MainProcess: 2016-07-09 16:41:25,001: root : INFO : lat, lon = 0, 2 4 | MainProcess: 2016-07-09 16:41:25,001: root : INFO : lat, lon = 0, 3 5 | MainProcess: 2016-07-09 16:41:25,002: root : INFO : lat, lon = 0, 4 6 | MainProcess: 2016-07-09 16:41:25,002: root : INFO : lat, lon = 1, 0 7 | MainProcess: 2016-07-09 16:41:25,003: root : INFO : lat, lon = 1, 1 8 | MainProcess: 2016-07-09 16:41:25,003: root : INFO : lat, lon = 1, 2 9 | MainProcess: 2016-07-09 16:41:25,003: root : INFO : lat, lon = 1, 3 10 | MainProcess: 2016-07-09 16:41:25,004: root : INFO : lat, lon = 1, 4 11 | MainProcess: 2016-07-09 16:41:25,004: root : INFO : lat, lon = 2, 0 12 | MainProcess: 2016-07-09 16:41:25,005: root : INFO : lat, lon = 2, 1 13 | MainProcess: 2016-07-09 16:41:25,005: root : INFO : lat, lon = 2, 2 14 | MainProcess: 2016-07-09 16:41:25,005: root : INFO : lat, lon = 2, 3 15 | MainProcess: 2016-07-09 16:41:25,006: root : INFO : lat, lon = 2, 4 16 | MainProcess: 2016-07-09 16:41:25,006: root : INFO : lat, lon = 3, 0 17 | MainProcess: 2016-07-09 16:41:25,006: root : INFO : lat, lon = 3, 1 18 | MainProcess: 2016-07-09 16:41:25,006: root : INFO : lat, lon = 3, 2 19 | MainProcess: 2016-07-09 16:41:25,007: root : INFO : lat, lon = 3, 3 20 | MainProcess: 2016-07-09 16:41:25,007: root : INFO : lat, lon = 3, 4 21 | MainProcess: 2016-07-09 16:41:25,007: root : INFO : lat, lon = 4, 0 22 | MainProcess: 2016-07-09 16:41:25,007: root : INFO : lat, lon = 4, 1 23 | MainProcess: 2016-07-09 16:41:25,007: root : INFO : lat, lon = 4, 2 24 | MainProcess: 2016-07-09 16:41:25,008: root : INFO : lat, lon = 4, 3 25 | MainProcess: 2016-07-09 16:41:25,008: root : INFO : lat, lon = 4, 4 26 | MainProcess: 2016-07-09 16:41:25,408: root : DEBUG : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558}} 27 | MainProcess: 2016-07-09 16:41:25,408: root : DEBUG : 0.4081418514251709 28 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:42,545: INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-06-30 13:40:42,547: INFO : 1.2741289138793945 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-06-30 13:40:42,237: INFO : processing lat, lon = 4, 1 2 | 4, 1 3 | ForkPoolWorker-1: 2016-06-30 13:40:42,311: INFO : processing lat, lon = 4, 3 4 | 4, 3 5 | ForkPoolWorker-3: 2016-06-30 13:40:42,339: INFO : processing lat, lon = 4, 4 6 | 4, 4 7 | ForkPoolWorker-2: 2016-06-30 13:40:42,340: INFO : processing lat, lon = 4, 5 8 | 4, 5 9 | ForkPoolWorker-1: 2016-06-30 13:40:42,413: INFO : processing lat, lon = 5, 0 10 | 5, 0 11 | ForkPoolWorker-3: 2016-06-30 13:40:42,441: INFO : processing lat, lon = 5, 1 12 | 5, 1 13 | ForkPoolWorker-2: 2016-06-30 13:40:42,441: INFO : processing lat, lon = 5, 2 14 | 5, 2 15 | ForkPoolWorker-1: 2016-06-30 13:40:42,515: INFO : processing lat, lon = 5, 3 16 | 5, 3 17 | ForkPoolWorker-3: 2016-06-30 13:40:42,543: INFO : processing lat, lon = 5, 4 18 | 5, 4 19 | ForkPoolWorker-2: 2016-06-30 13:40:42,543: INFO : processing lat, lon = 5, 5 20 | 5, 5 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-06-30 13:40:41,931: INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-3: 2016-06-30 13:40:41,931: INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | ForkPoolWorker-1: 2016-06-30 13:40:42,005: INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | ForkPoolWorker-3: 2016-06-30 13:40:42,033: INFO : processing lat, lon = 3, 2 8 | 3, 2 9 | ForkPoolWorker-2: 2016-06-30 13:40:42,033: INFO : processing lat, lon = 3, 1 10 | 3, 1 11 | ForkPoolWorker-1: 2016-06-30 13:40:42,107: INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | ForkPoolWorker-2: 2016-06-30 13:40:42,135: INFO : processing lat, lon = 3, 5 14 | 3, 5 15 | ForkPoolWorker-3: 2016-06-30 13:40:42,135: INFO : processing lat, lon = 3, 4 16 | 3, 4 17 | ForkPoolWorker-1: 2016-06-30 13:40:42,209: INFO : processing lat, lon = 4, 0 18 | 4, 0 19 | ForkPoolWorker-3: 2016-06-30 13:40:42,237: INFO : processing lat, lon = 4, 2 20 | 4, 2 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-06-30 13:40:41,598: INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | ForkPoolWorker-2: 2016-06-30 13:40:41,618: INFO : processing lat, lon = 1, 1 4 | 1, 1 5 | ForkPoolWorker-3: 2016-06-30 13:40:41,619: INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-1: 2016-06-30 13:40:41,700: INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-2: 2016-06-30 13:40:41,728: INFO : processing lat, lon = 1, 4 10 | 1, 4 11 | ForkPoolWorker-3: 2016-06-30 13:40:41,728: INFO : processing lat, lon = 1, 5 12 | 1, 5 13 | ForkPoolWorker-1: 2016-06-30 13:40:41,802: INFO : processing lat, lon = 2, 0 14 | 2, 0 15 | ForkPoolWorker-2: 2016-06-30 13:40:41,829: INFO : processing lat, lon = 2, 1 16 | 2, 1 17 | ForkPoolWorker-3: 2016-06-30 13:40:41,830: INFO : processing lat, lon = 2, 2 18 | 2, 2 19 | ForkPoolWorker-1: 2016-06-30 13:40:41,904: INFO : processing lat, lon = 2, 3 20 | 2, 3 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:41,302: INFO : lat, lon = 5, 0 2 | MainProcess: 2016-06-30 13:40:41,303: INFO : lat, lon = 5, 1 3 | MainProcess: 2016-06-30 13:40:41,303: INFO : lat, lon = 5, 2 4 | MainProcess: 2016-06-30 13:40:41,304: INFO : lat, lon = 5, 3 5 | MainProcess: 2016-06-30 13:40:41,304: INFO : lat, lon = 5, 4 6 | MainProcess: 2016-06-30 13:40:41,304: INFO : lat, lon = 5, 5 7 | ForkPoolWorker-1: 2016-06-30 13:40:41,393: INFO : processing lat, lon = 0, 0 8 | 0, 0 9 | ForkPoolWorker-2: 2016-06-30 13:40:41,394: INFO : processing lat, lon = 0, 1 10 | 0, 1 11 | ForkPoolWorker-3: 2016-06-30 13:40:41,395: INFO : processing lat, lon = 0, 2 12 | 0, 2 13 | ForkPoolWorker-1: 2016-06-30 13:40:41,496: INFO : processing lat, lon = 0, 3 14 | 0, 3 15 | ForkPoolWorker-2: 2016-06-30 13:40:41,517: INFO : processing lat, lon = 0, 4 16 | 0, 4 17 | ForkPoolWorker-3: 2016-06-30 13:40:41,517: INFO : processing lat, lon = 0, 5 18 | 0, 5 19 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:41,297: INFO : lat, lon = 2, 3 2 | MainProcess: 2016-06-30 13:40:41,298: INFO : lat, lon = 2, 4 3 | MainProcess: 2016-06-30 13:40:41,298: INFO : lat, lon = 2, 5 4 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 0 5 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 1 6 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 2 7 | MainProcess: 2016-06-30 13:40:41,299: INFO : lat, lon = 3, 3 8 | MainProcess: 2016-06-30 13:40:41,300: INFO : lat, lon = 3, 4 9 | MainProcess: 2016-06-30 13:40:41,300: INFO : lat, lon = 3, 5 10 | MainProcess: 2016-06-30 13:40:41,300: INFO : lat, lon = 4, 0 11 | MainProcess: 2016-06-30 13:40:41,301: INFO : lat, lon = 4, 1 12 | MainProcess: 2016-06-30 13:40:41,301: INFO : lat, lon = 4, 2 13 | MainProcess: 2016-06-30 13:40:41,301: INFO : lat, lon = 4, 3 14 | MainProcess: 2016-06-30 13:40:41,302: INFO : lat, lon = 4, 4 15 | MainProcess: 2016-06-30 13:40:41,302: INFO : lat, lon = 4, 5 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'-close--GOOD/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:40:41,280: INFO : lat, lon = 0, 0 2 | MainProcess: 2016-06-30 13:40:41,290: INFO : lat, lon = 0, 1 3 | MainProcess: 2016-06-30 13:40:41,292: INFO : lat, lon = 0, 2 4 | MainProcess: 2016-06-30 13:40:41,292: INFO : lat, lon = 0, 3 5 | MainProcess: 2016-06-30 13:40:41,293: INFO : lat, lon = 0, 4 6 | MainProcess: 2016-06-30 13:40:41,294: INFO : lat, lon = 0, 5 7 | MainProcess: 2016-06-30 13:40:41,294: INFO : lat, lon = 1, 0 8 | MainProcess: 2016-06-30 13:40:41,294: INFO : lat, lon = 1, 1 9 | MainProcess: 2016-06-30 13:40:41,295: INFO : lat, lon = 1, 2 10 | MainProcess: 2016-06-30 13:40:41,295: INFO : lat, lon = 1, 3 11 | MainProcess: 2016-06-30 13:40:41,296: INFO : lat, lon = 1, 4 12 | MainProcess: 2016-06-30 13:40:41,296: INFO : lat, lon = 1, 5 13 | MainProcess: 2016-06-30 13:40:41,296: INFO : lat, lon = 2, 0 14 | MainProcess: 2016-06-30 13:40:41,297: INFO : lat, lon = 2, 1 15 | MainProcess: 2016-06-30 13:40:41,297: INFO : lat, lon = 2, 2 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:04,864: INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-06-30 13:44:04,866: INFO : 1.2764499187469482 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: 2016-06-30 13:44:04,558: INFO : processing lat, lon = 4, 2 2 | 4, 2 3 | ForkPoolWorker-1: 2016-06-30 13:44:04,626: INFO : processing lat, lon = 4, 3 4 | 4, 3 5 | ForkPoolWorker-3: 2016-06-30 13:44:04,658: INFO : processing lat, lon = 4, 4 6 | 4, 4 7 | ForkPoolWorker-2: 2016-06-30 13:44:04,659: INFO : processing lat, lon = 4, 5 8 | 4, 5 9 | ForkPoolWorker-1: 2016-06-30 13:44:04,728: INFO : processing lat, lon = 5, 0 10 | 5, 0 11 | ForkPoolWorker-3: 2016-06-30 13:44:04,760: INFO : processing lat, lon = 5, 1 12 | 5, 1 13 | ForkPoolWorker-2: 2016-06-30 13:44:04,760: INFO : processing lat, lon = 5, 2 14 | 5, 2 15 | ForkPoolWorker-1: 2016-06-30 13:44:04,830: INFO : processing lat, lon = 5, 3 16 | 5, 3 17 | ForkPoolWorker-3: 2016-06-30 13:44:04,863: INFO : processing lat, lon = 5, 4 18 | 5, 4 19 | ForkPoolWorker-2: 2016-06-30 13:44:04,863: INFO : processing lat, lon = 5, 5 20 | 5, 5 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: 2016-06-30 13:44:04,251: INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-2: 2016-06-30 13:44:04,253: INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | ForkPoolWorker-1: 2016-06-30 13:44:04,322: INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | ForkPoolWorker-3: 2016-06-30 13:44:04,353: INFO : processing lat, lon = 3, 1 8 | 3, 1 9 | ForkPoolWorker-2: 2016-06-30 13:44:04,355: INFO : processing lat, lon = 3, 2 10 | 3, 2 11 | ForkPoolWorker-1: 2016-06-30 13:44:04,423: INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | ForkPoolWorker-3: 2016-06-30 13:44:04,455: INFO : processing lat, lon = 3, 4 14 | 3, 4 15 | ForkPoolWorker-2: 2016-06-30 13:44:04,456: INFO : processing lat, lon = 3, 5 16 | 3, 5 17 | ForkPoolWorker-1: 2016-06-30 13:44:04,525: INFO : processing lat, lon = 4, 0 18 | 4, 0 19 | ForkPoolWorker-3: 2016-06-30 13:44:04,556: INFO : processing lat, lon = 4, 1 20 | 4, 1 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: 2016-06-30 13:44:03,915: INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | ForkPoolWorker-3: 2016-06-30 13:44:03,947: INFO : processing lat, lon = 1, 1 4 | 1, 1 5 | ForkPoolWorker-2: 2016-06-30 13:44:03,947: INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-1: 2016-06-30 13:44:04,016: INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-3: 2016-06-30 13:44:04,049: INFO : processing lat, lon = 1, 4 10 | 1, 4 11 | ForkPoolWorker-2: 2016-06-30 13:44:04,049: INFO : processing lat, lon = 1, 5 12 | 1, 5 13 | ForkPoolWorker-1: 2016-06-30 13:44:04,118: INFO : processing lat, lon = 2, 0 14 | 2, 0 15 | ForkPoolWorker-3: 2016-06-30 13:44:04,150: INFO : processing lat, lon = 2, 1 16 | 2, 1 17 | ForkPoolWorker-2: 2016-06-30 13:44:04,151: INFO : processing lat, lon = 2, 2 18 | 2, 2 19 | ForkPoolWorker-1: 2016-06-30 13:44:04,220: INFO : processing lat, lon = 2, 3 20 | 2, 3 21 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:03,619: INFO : lat, lon = 5, 0 2 | MainProcess: 2016-06-30 13:44:03,620: INFO : lat, lon = 5, 1 3 | MainProcess: 2016-06-30 13:44:03,620: INFO : lat, lon = 5, 2 4 | MainProcess: 2016-06-30 13:44:03,621: INFO : lat, lon = 5, 3 5 | MainProcess: 2016-06-30 13:44:03,621: INFO : lat, lon = 5, 4 6 | MainProcess: 2016-06-30 13:44:03,621: INFO : lat, lon = 5, 5 7 | ForkPoolWorker-1: 2016-06-30 13:44:03,709: INFO : processing lat, lon = 0, 0 8 | 0, 0 9 | ForkPoolWorker-2: 2016-06-30 13:44:03,710: INFO : processing lat, lon = 0, 1 10 | 0, 1 11 | ForkPoolWorker-3: 2016-06-30 13:44:03,712: INFO : processing lat, lon = 0, 2 12 | 0, 2 13 | ForkPoolWorker-1: 2016-06-30 13:44:03,812: INFO : processing lat, lon = 0, 3 14 | 0, 3 15 | ForkPoolWorker-3: 2016-06-30 13:44:03,839: INFO : processing lat, lon = 0, 5 16 | 0, 5 17 | ForkPoolWorker-2: 2016-06-30 13:44:03,839: INFO : processing lat, lon = 0, 4 18 | 0, 4 19 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:03,614: INFO : lat, lon = 2, 3 2 | MainProcess: 2016-06-30 13:44:03,615: INFO : lat, lon = 2, 4 3 | MainProcess: 2016-06-30 13:44:03,615: INFO : lat, lon = 2, 5 4 | MainProcess: 2016-06-30 13:44:03,616: INFO : lat, lon = 3, 0 5 | MainProcess: 2016-06-30 13:44:03,616: INFO : lat, lon = 3, 1 6 | MainProcess: 2016-06-30 13:44:03,616: INFO : lat, lon = 3, 2 7 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 3, 3 8 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 3, 4 9 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 3, 5 10 | MainProcess: 2016-06-30 13:44:03,617: INFO : lat, lon = 4, 0 11 | MainProcess: 2016-06-30 13:44:03,618: INFO : lat, lon = 4, 1 12 | MainProcess: 2016-06-30 13:44:03,618: INFO : lat, lon = 4, 2 13 | MainProcess: 2016-06-30 13:44:03,618: INFO : lat, lon = 4, 3 14 | MainProcess: 2016-06-30 13:44:03,619: INFO : lat, lon = 4, 4 15 | MainProcess: 2016-06-30 13:44:03,619: INFO : lat, lon = 4, 5 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'a'or'w'-close--GOOD/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-06-30 13:44:03,597: INFO : lat, lon = 0, 0 2 | MainProcess: 2016-06-30 13:44:03,607: INFO : lat, lon = 0, 1 3 | MainProcess: 2016-06-30 13:44:03,609: INFO : lat, lon = 0, 2 4 | MainProcess: 2016-06-30 13:44:03,609: INFO : lat, lon = 0, 3 5 | MainProcess: 2016-06-30 13:44:03,610: INFO : lat, lon = 0, 4 6 | MainProcess: 2016-06-30 13:44:03,610: INFO : lat, lon = 0, 5 7 | MainProcess: 2016-06-30 13:44:03,611: INFO : lat, lon = 1, 0 8 | MainProcess: 2016-06-30 13:44:03,611: INFO : lat, lon = 1, 1 9 | MainProcess: 2016-06-30 13:44:03,611: INFO : lat, lon = 1, 2 10 | MainProcess: 2016-06-30 13:44:03,612: INFO : lat, lon = 1, 3 11 | MainProcess: 2016-06-30 13:44:03,612: INFO : lat, lon = 1, 4 12 | MainProcess: 2016-06-30 13:44:03,613: INFO : lat, lon = 1, 5 13 | MainProcess: 2016-06-30 13:44:03,613: INFO : lat, lon = 2, 0 14 | MainProcess: 2016-06-30 13:44:03,614: INFO : lat, lon = 2, 1 15 | MainProcess: 2016-06-30 13:44:03,614: INFO : lat, lon = 2, 2 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: INFO : 1.2544889450073242 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: INFO : processing lat, lon = 0, 2 2 | 0, 2 3 | ForkPoolWorker-3: INFO : processing lat, lon = 0, 5 4 | 0, 5 5 | ForkPoolWorker-3: INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-3: INFO : processing lat, lon = 1, 5 8 | 1, 5 9 | ForkPoolWorker-3: INFO : processing lat, lon = 2, 2 10 | 2, 2 11 | ForkPoolWorker-3: INFO : processing lat, lon = 2, 5 12 | 2, 5 13 | ForkPoolWorker-3: INFO : processing lat, lon = 3, 2 14 | 3, 2 15 | ForkPoolWorker-3: INFO : processing lat, lon = 3, 5 16 | 3, 5 17 | ForkPoolWorker-3: INFO : processing lat, lon = 4, 2 18 | 4, 2 19 | ForkPoolWorker-3: INFO : processing lat, lon = 4, 5 20 | 4, 5 21 | ForkPoolWorker-3: INFO : processing lat, lon = 5, 2 22 | 5, 2 23 | ForkPoolWorker-3: INFO : processing lat, lon = 5, 5 24 | 5, 5 25 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-2: INFO : processing lat, lon = 0, 1 2 | 0, 1 3 | ForkPoolWorker-2: INFO : processing lat, lon = 0, 4 4 | 0, 4 5 | ForkPoolWorker-2: INFO : processing lat, lon = 1, 1 6 | 1, 1 7 | ForkPoolWorker-2: INFO : processing lat, lon = 1, 4 8 | 1, 4 9 | ForkPoolWorker-2: INFO : processing lat, lon = 2, 1 10 | 2, 1 11 | ForkPoolWorker-2: INFO : processing lat, lon = 2, 4 12 | 2, 4 13 | ForkPoolWorker-2: INFO : processing lat, lon = 3, 1 14 | 3, 1 15 | ForkPoolWorker-2: INFO : processing lat, lon = 3, 4 16 | 3, 4 17 | ForkPoolWorker-2: INFO : processing lat, lon = 4, 0 18 | 4, 0 19 | ForkPoolWorker-2: INFO : processing lat, lon = 4, 4 20 | 4, 4 21 | ForkPoolWorker-2: INFO : processing lat, lon = 5, 0 22 | 5, 0 23 | ForkPoolWorker-2: INFO : processing lat, lon = 5, 4 24 | 5, 4 25 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-1: INFO : processing lat, lon = 0, 0 2 | 0, 0 3 | ForkPoolWorker-1: INFO : processing lat, lon = 0, 3 4 | 0, 3 5 | ForkPoolWorker-1: INFO : processing lat, lon = 1, 0 6 | 1, 0 7 | ForkPoolWorker-1: INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-1: INFO : processing lat, lon = 2, 0 10 | 2, 0 11 | ForkPoolWorker-1: INFO : processing lat, lon = 2, 3 12 | 2, 3 13 | ForkPoolWorker-1: INFO : processing lat, lon = 3, 0 14 | 3, 0 15 | ForkPoolWorker-1: INFO : processing lat, lon = 3, 3 16 | 3, 3 17 | ForkPoolWorker-1: INFO : processing lat, lon = 4, 1 18 | 4, 1 19 | ForkPoolWorker-1: INFO : processing lat, lon = 4, 3 20 | 4, 3 21 | ForkPoolWorker-1: INFO : processing lat, lon = 5, 1 22 | 5, 1 23 | ForkPoolWorker-1: INFO : processing lat, lon = 5, 3 24 | 5, 3 25 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | MainProcess: INFO : lat, lon = 4, 2 2 | MainProcess: INFO : lat, lon = 4, 3 3 | MainProcess: INFO : lat, lon = 4, 4 4 | MainProcess: INFO : lat, lon = 4, 5 5 | MainProcess: INFO : lat, lon = 5, 0 6 | MainProcess: INFO : lat, lon = 5, 1 7 | MainProcess: INFO : lat, lon = 5, 2 8 | MainProcess: INFO : lat, lon = 5, 3 9 | MainProcess: INFO : lat, lon = 5, 4 10 | MainProcess: INFO : lat, lon = 5, 5 11 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING-3processes-1024maxbytes-10backup-'w'-no_close--BAD/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: INFO : lat, lon = 0, 0 2 | MainProcess: INFO : lat, lon = 0, 1 3 | MainProcess: INFO : lat, lon = 0, 2 4 | MainProcess: INFO : lat, lon = 0, 3 5 | MainProcess: INFO : lat, lon = 0, 4 6 | MainProcess: INFO : lat, lon = 0, 5 7 | MainProcess: INFO : lat, lon = 1, 0 8 | MainProcess: INFO : lat, lon = 1, 1 9 | MainProcess: INFO : lat, lon = 1, 2 10 | MainProcess: INFO : lat, lon = 1, 3 11 | MainProcess: INFO : lat, lon = 1, 4 12 | MainProcess: INFO : lat, lon = 1, 5 13 | MainProcess: INFO : lat, lon = 2, 0 14 | MainProcess: INFO : lat, lon = 2, 1 15 | MainProcess: INFO : lat, lon = 2, 2 16 | MainProcess: INFO : lat, lon = 2, 3 17 | MainProcess: INFO : lat, lon = 2, 4 18 | MainProcess: INFO : lat, lon = 2, 5 19 | MainProcess: INFO : lat, lon = 3, 0 20 | MainProcess: INFO : lat, lon = 3, 1 21 | MainProcess: INFO : lat, lon = 3, 2 22 | MainProcess: INFO : lat, lon = 3, 3 23 | MainProcess: INFO : lat, lon = 3, 4 24 | MainProcess: INFO : lat, lon = 3, 5 25 | MainProcess: INFO : lat, lon = 4, 0 26 | MainProcess: INFO : lat, lon = 4, 1 27 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-41: 2016-07-09 16:41:28,016: root : INFO : processing lat, lon = 5, 1 2 | 5, 1 3 | ForkPoolWorker-42: 2016-07-09 16:41:28,087: root : INFO : processing lat, lon = 5, 3 4 | 5, 3 5 | ForkPoolWorker-43: 2016-07-09 16:41:28,118: root : INFO : processing lat, lon = 5, 4 6 | 5, 4 7 | ForkPoolWorker-41: 2016-07-09 16:41:28,119: root : INFO : processing lat, lon = 5, 5 8 | 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-42: 2016-07-09 16:41:27,780: root : INFO : processing lat, lon = 4, 0 2 | 4, 0 3 | ForkPoolWorker-41: 2016-07-09 16:41:27,812: root : INFO : processing lat, lon = 4, 1 4 | 4, 1 5 | ForkPoolWorker-43: 2016-07-09 16:41:27,812: root : INFO : processing lat, lon = 4, 2 6 | 4, 2 7 | ForkPoolWorker-42: 2016-07-09 16:41:27,883: root : INFO : processing lat, lon = 4, 3 8 | 4, 3 9 | ForkPoolWorker-41: 2016-07-09 16:41:27,914: root : INFO : processing lat, lon = 4, 4 10 | 4, 4 11 | ForkPoolWorker-43: 2016-07-09 16:41:27,914: root : INFO : processing lat, lon = 4, 5 12 | 4, 5 13 | ForkPoolWorker-42: 2016-07-09 16:41:27,985: root : INFO : processing lat, lon = 5, 0 14 | 5, 0 15 | ForkPoolWorker-43: 2016-07-09 16:41:28,016: root : INFO : processing lat, lon = 5, 2 16 | 5, 2 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.10: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 16:41:25,563: root : INFO : lat, lon = 5, 3 2 | MainProcess: 2016-07-09 16:41:25,563: root : INFO : lat, lon = 5, 4 3 | MainProcess: 2016-07-09 16:41:25,564: root : INFO : lat, lon = 5, 5 4 | ForkPoolWorker-41: 2016-07-09 16:41:25,644: root : INFO : processing lat, lon = 0, 0 5 | 0, 0 6 | ForkPoolWorker-42: 2016-07-09 16:41:25,645: root : INFO : processing lat, lon = 0, 1 7 | 0, 1 8 | ForkPoolWorker-43: 2016-07-09 16:41:25,647: root : INFO : processing lat, lon = 0, 2 9 | 0, 2 10 | ForkPoolWorker-41: 2016-07-09 16:41:25,747: root : INFO : processing lat, lon = 0, 3 11 | 0, 3 12 | ForkPoolWorker-42: 2016-07-09 16:41:25,747: root : INFO : processing lat, lon = 0, 4 13 | 0, 4 14 | ForkPoolWorker-43: 2016-07-09 16:41:25,749: root : INFO : processing lat, lon = 0, 5 15 | 0, 5 16 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-41: 2016-07-09 16:41:27,489: root : INFO : processing lat, lon = 2, 4 2 | 2, 4 3 | ForkPoolWorker-43: 2016-07-09 16:41:27,489: root : INFO : processing lat, lon = 2, 5 4 | 2, 5 5 | ForkPoolWorker-42: 2016-07-09 16:41:27,575: root : INFO : processing lat, lon = 3, 0 6 | 3, 0 7 | ForkPoolWorker-43: 2016-07-09 16:41:27,602: root : INFO : processing lat, lon = 3, 2 8 | 3, 2 9 | ForkPoolWorker-41: 2016-07-09 16:41:27,602: root : INFO : processing lat, lon = 3, 1 10 | 3, 1 11 | ForkPoolWorker-42: 2016-07-09 16:41:27,677: root : INFO : processing lat, lon = 3, 3 12 | 3, 3 13 | ForkPoolWorker-41: 2016-07-09 16:41:27,710: root : INFO : processing lat, lon = 3, 5 14 | 3, 5 15 | ForkPoolWorker-43: 2016-07-09 16:41:27,710: root : INFO : processing lat, lon = 3, 4 16 | 3, 4 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-43: 2016-07-09 16:41:27,130: root : INFO : processing lat, lon = 1, 2 2 | 1, 2 3 | ForkPoolWorker-42: 2016-07-09 16:41:27,211: root : INFO : processing lat, lon = 1, 3 4 | 1, 3 5 | ForkPoolWorker-41: 2016-07-09 16:41:27,212: root : INFO : processing lat, lon = 1, 4 6 | 1, 4 7 | ForkPoolWorker-43: 2016-07-09 16:41:27,234: root : INFO : processing lat, lon = 1, 5 8 | 1, 5 9 | ForkPoolWorker-42: 2016-07-09 16:41:27,316: root : INFO : processing lat, lon = 2, 0 10 | 2, 0 11 | ForkPoolWorker-41: 2016-07-09 16:41:27,317: root : INFO : processing lat, lon = 2, 1 12 | 2, 1 13 | ForkPoolWorker-43: 2016-07-09 16:41:27,336: root : INFO : processing lat, lon = 2, 2 14 | 2, 2 15 | ForkPoolWorker-42: 2016-07-09 16:41:27,462: root : INFO : processing lat, lon = 2, 3 16 | 2, 3 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-41: 2016-07-09 16:41:26,894: root : INFO : processing lat, lon = 0, 1 2 | 0, 1 3 | ForkPoolWorker-42: 2016-07-09 16:41:26,894: root : INFO : processing lat, lon = 0, 2 4 | 0, 2 5 | ForkPoolWorker-43: 2016-07-09 16:41:26,894: root : INFO : processing lat, lon = 0, 0 6 | 0, 0 7 | ForkPoolWorker-41: 2016-07-09 16:41:27,002: root : INFO : processing lat, lon = 0, 3 8 | 0, 3 9 | ForkPoolWorker-42: 2016-07-09 16:41:27,005: root : INFO : processing lat, lon = 0, 4 10 | 0, 4 11 | ForkPoolWorker-43: 2016-07-09 16:41:27,006: root : INFO : processing lat, lon = 0, 5 12 | 0, 5 13 | ForkPoolWorker-41: 2016-07-09 16:41:27,107: root : INFO : processing lat, lon = 1, 0 14 | 1, 0 15 | ForkPoolWorker-42: 2016-07-09 16:41:27,107: root : INFO : processing lat, lon = 1, 1 16 | 1, 1 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | MainProcess: 2016-07-09 16:41:26,776: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | MainProcess: 2016-07-09 16:41:26,780: root : INFO : 1.3053700923919678 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.6: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-42: 2016-07-09 16:41:26,671: root : INFO : processing lat, lon = 5, 0 2 | 5, 0 3 | ForkPoolWorker-43: 2016-07-09 16:41:26,671: root : INFO : processing lat, lon = 5, 1 4 | 5, 1 5 | ForkPoolWorker-41: 2016-07-09 16:41:26,672: root : INFO : processing lat, lon = 5, 2 6 | 5, 2 7 | ForkPoolWorker-43: 2016-07-09 16:41:26,773: root : INFO : processing lat, lon = 5, 4 8 | 5, 4 9 | ForkPoolWorker-41: 2016-07-09 16:41:26,773: root : INFO : processing lat, lon = 5, 5 10 | 5, 5 11 | ForkPoolWorker-42: 2016-07-09 16:41:26,773: root : INFO : processing lat, lon = 5, 3 12 | 5, 3 13 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.7: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-43: 2016-07-09 16:41:26,359: root : INFO : processing lat, lon = 3, 4 2 | 3, 4 3 | ForkPoolWorker-41: 2016-07-09 16:41:26,361: root : INFO : processing lat, lon = 3, 5 4 | 3, 5 5 | ForkPoolWorker-42: 2016-07-09 16:41:26,461: root : INFO : processing lat, lon = 4, 0 6 | 4, 0 7 | ForkPoolWorker-43: 2016-07-09 16:41:26,463: root : INFO : processing lat, lon = 4, 1 8 | 4, 1 9 | ForkPoolWorker-41: 2016-07-09 16:41:26,463: root : INFO : processing lat, lon = 4, 2 10 | 4, 2 11 | ForkPoolWorker-42: 2016-07-09 16:41:26,562: root : INFO : processing lat, lon = 4, 3 12 | 4, 3 13 | ForkPoolWorker-43: 2016-07-09 16:41:26,565: root : INFO : processing lat, lon = 4, 4 14 | 4, 4 15 | ForkPoolWorker-41: 2016-07-09 16:41:26,565: root : INFO : processing lat, lon = 4, 5 16 | 4, 5 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.8: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-41: 2016-07-09 16:41:26,054: root : INFO : processing lat, lon = 2, 1 2 | 2, 1 3 | ForkPoolWorker-42: 2016-07-09 16:41:26,155: root : INFO : processing lat, lon = 2, 3 4 | 2, 3 5 | ForkPoolWorker-43: 2016-07-09 16:41:26,156: root : INFO : processing lat, lon = 2, 4 6 | 2, 4 7 | ForkPoolWorker-41: 2016-07-09 16:41:26,157: root : INFO : processing lat, lon = 2, 5 8 | 2, 5 9 | ForkPoolWorker-42: 2016-07-09 16:41:26,257: root : INFO : processing lat, lon = 3, 0 10 | 3, 0 11 | ForkPoolWorker-43: 2016-07-09 16:41:26,258: root : INFO : processing lat, lon = 3, 1 12 | 3, 1 13 | ForkPoolWorker-41: 2016-07-09 16:41:26,259: root : INFO : processing lat, lon = 3, 2 14 | 3, 2 15 | ForkPoolWorker-42: 2016-07-09 16:41:26,359: root : INFO : processing lat, lon = 3, 3 16 | 3, 3 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/LOCKING/rot_fh.log.9: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-42: 2016-07-09 16:41:25,849: root : INFO : processing lat, lon = 1, 1 2 | 1, 1 3 | ForkPoolWorker-41: 2016-07-09 16:41:25,849: root : INFO : processing lat, lon = 1, 0 4 | 1, 0 5 | ForkPoolWorker-43: 2016-07-09 16:41:25,850: root : INFO : processing lat, lon = 1, 2 6 | 1, 2 7 | ForkPoolWorker-42: 2016-07-09 16:41:25,951: root : INFO : processing lat, lon = 1, 3 8 | 1, 3 9 | ForkPoolWorker-41: 2016-07-09 16:41:25,953: root : INFO : processing lat, lon = 1, 4 10 | 1, 4 11 | ForkPoolWorker-43: 2016-07-09 16:41:25,953: root : INFO : processing lat, lon = 1, 5 12 | 1, 5 13 | ForkPoolWorker-42: 2016-07-09 16:41:26,053: root : INFO : processing lat, lon = 2, 0 14 | 2, 0 15 | ForkPoolWorker-43: 2016-07-09 16:41:26,054: root : INFO : processing lat, lon = 2, 2 16 | 2, 2 17 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log: -------------------------------------------------------------------------------- 1 | MainProcess: DEBUG : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558}} 2 | MainProcess: DEBUG : 0.4484539031982422 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-3: INFO : processing lat, lon = 1, 4 2 | 1, 4 3 | ForkPoolWorker-1: INFO : processing lat, lon = 3, 0 4 | 3, 0 5 | ForkPoolWorker-3: INFO : processing lat, lon = 3, 1 6 | 3, 1 7 | ForkPoolWorker-5: INFO : processing lat, lon = 4, 1 8 | 4, 1 9 | ForkPoolWorker-2: INFO : processing lat, lon = 4, 2 10 | 4, 2 11 | ForkPoolWorker-1: INFO : processing lat, lon = 4, 3 12 | 4, 3 13 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-8: INFO : processing lat, lon = 1, 2 2 | 1, 2 3 | ForkPoolWorker-8: INFO : processing lat, lon = 2, 4 4 | 2, 4 5 | ForkPoolWorker-8: INFO : processing lat, lon = 4, 0 6 | 4, 0 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-6: INFO : processing lat, lon = 1, 0 2 | 1, 0 3 | ForkPoolWorker-6: INFO : processing lat, lon = 2, 3 4 | 2, 3 5 | ForkPoolWorker-6: INFO : processing lat, lon = 3, 4 6 | 3, 4 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.4: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-7: INFO : processing lat, lon = 1, 1 2 | 1, 1 3 | ForkPoolWorker-7: INFO : processing lat, lon = 2, 2 4 | 2, 2 5 | ForkPoolWorker-7: INFO : processing lat, lon = 3, 3 6 | 3, 3 7 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING-no_close-doesnt_even_work/rot_fh.log.5: -------------------------------------------------------------------------------- 1 | ForkPoolWorker-4: INFO : processing lat, lon = 0, 3 2 | 0, 3 3 | ForkPoolWorker-4: INFO : processing lat, lon = 2, 1 4 | 2, 1 5 | ForkPoolWorker-4: INFO : processing lat, lon = 3, 2 6 | 3, 2 7 | ForkPoolWorker-4: INFO : processing lat, lon = 4, 4 8 | 4, 4 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log: -------------------------------------------------------------------------------- 1 | 2016-07-09 16:41:28,122: root : INFO : {0: {0: 0.8444218515250481, 1: 0.7579544029403025, 2: 0.420571580830845, 3: 0.25891675029296335, 4: 0.5112747213686085, 5: 0.4049341374504143}, 1: {0: 0.7579544029403025, 1: 0.420571580830845, 2: 0.25891675029296335, 3: 0.5112747213686085, 4: 0.4049341374504143, 5: 0.7837985890347726}, 2: {0: 0.420571580830845, 1: 0.25891675029296335, 2: 0.5112747213686085, 3: 0.4049341374504143, 4: 0.7837985890347726, 5: 0.30331272607892745}, 3: {0: 0.25891675029296335, 1: 0.5112747213686085, 2: 0.4049341374504143, 3: 0.7837985890347726, 4: 0.30331272607892745, 5: 0.4765969541523558}, 4: {0: 0.5112747213686085, 1: 0.4049341374504143, 2: 0.7837985890347726, 3: 0.30331272607892745, 4: 0.4765969541523558, 5: 0.5833820394550312}, 5: {0: 0.4049341374504143, 1: 0.7837985890347726, 2: 0.30331272607892745, 3: 0.4765969541523558, 4: 0.5833820394550312, 5: 0.9081128851953352}} 2 | 2016-07-09 16:41:28,123: root : INFO : 1.3401730060577393 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | 2016-07-09 16:41:26,799: root : INFO : lat, lon = 4, 4 2 | 2016-07-09 16:41:26,800: root : INFO : lat, lon = 4, 5 3 | 2016-07-09 16:41:26,800: root : INFO : lat, lon = 5, 0 4 | 2016-07-09 16:41:26,803: root : INFO : lat, lon = 5, 1 5 | 2016-07-09 16:41:26,804: root : INFO : lat, lon = 5, 2 6 | 2016-07-09 16:41:26,804: root : INFO : lat, lon = 5, 3 7 | 2016-07-09 16:41:26,805: root : INFO : lat, lon = 5, 4 8 | 2016-07-09 16:41:26,805: root : INFO : lat, lon = 5, 5 9 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | 2016-07-09 16:41:26,795: root : INFO : lat, lon = 2, 2 2 | 2016-07-09 16:41:26,796: root : INFO : lat, lon = 2, 3 3 | 2016-07-09 16:41:26,797: root : INFO : lat, lon = 2, 4 4 | 2016-07-09 16:41:26,797: root : INFO : lat, lon = 2, 5 5 | 2016-07-09 16:41:26,797: root : INFO : lat, lon = 3, 0 6 | 2016-07-09 16:41:26,797: root : INFO : lat, lon = 3, 1 7 | 2016-07-09 16:41:26,797: root : INFO : lat, lon = 3, 2 8 | 2016-07-09 16:41:26,798: root : INFO : lat, lon = 3, 3 9 | 2016-07-09 16:41:26,798: root : INFO : lat, lon = 3, 4 10 | 2016-07-09 16:41:26,798: root : INFO : lat, lon = 3, 5 11 | 2016-07-09 16:41:26,798: root : INFO : lat, lon = 4, 0 12 | 2016-07-09 16:41:26,798: root : INFO : lat, lon = 4, 1 13 | 2016-07-09 16:41:26,799: root : INFO : lat, lon = 4, 2 14 | 2016-07-09 16:41:26,799: root : INFO : lat, lon = 4, 3 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/mproc_deco_rot_fh/NOLOCKING/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | 2016-07-09 16:41:26,783: root : INFO : lat, lon = 0, 0 2 | 2016-07-09 16:41:26,784: root : INFO : lat, lon = 0, 1 3 | 2016-07-09 16:41:26,784: root : INFO : lat, lon = 0, 2 4 | 2016-07-09 16:41:26,784: root : INFO : lat, lon = 0, 3 5 | 2016-07-09 16:41:26,784: root : INFO : lat, lon = 0, 4 6 | 2016-07-09 16:41:26,785: root : INFO : lat, lon = 0, 5 7 | 2016-07-09 16:41:26,792: root : INFO : lat, lon = 1, 0 8 | 2016-07-09 16:41:26,793: root : INFO : lat, lon = 1, 1 9 | 2016-07-09 16:41:26,793: root : INFO : lat, lon = 1, 2 10 | 2016-07-09 16:41:26,793: root : INFO : lat, lon = 1, 3 11 | 2016-07-09 16:41:26,794: root : INFO : lat, lon = 1, 4 12 | 2016-07-09 16:41:26,794: root : INFO : lat, lon = 1, 5 13 | 2016-07-09 16:41:26,794: root : INFO : lat, lon = 2, 0 14 | 2016-07-09 16:41:26,794: root : INFO : lat, lon = 2, 1 15 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/root_logger/logfile.log: -------------------------------------------------------------------------------- 1 | WARNING : 2. Log to both file and console 2 | DEBUG : 3. Log to file only 3 | WARNING : 4. Log to both file and console 4 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/rot_fh/rot_fh.log: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/rot_fh/rot_fh.log.1: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/rot_fh/rot_fh.log.2: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_log saved/_log--3.x-runs (II)/rot_fh/rot_fh.log.3: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /examples/_smtp_credentials.py: -------------------------------------------------------------------------------- 1 | # 2 | # NOTE: EDIT THESE VARIABLES to run the SMTP examples 3 | # 4 | 5 | SMTP_USERNAME = 'john.doe' # assuming your sending email address is 6 | # 'john.doe@' + hostname, e.g. 'john.doe@gmail.com' 7 | SMTP_PASSWORD = 'password' # your password 8 | 9 | FROM_ADDRESS = SMTP_USERNAME + '@' + 'gmail.com' # or @ another host 10 | SMTP_SERVER = ('smtp.gmail.com', 587) # for example (actually valid) 11 | 12 | # For gmail: 13 | # FROM_ADDRESS = SMTP_USERNAME + '@gmail.com' 14 | # SMTP_SERVER = ('smtp.gmail.com', 587) 15 | # 16 | # 587 = TLS port 17 | # See http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm 18 | -------------------------------------------------------------------------------- /examples/check_for_NUL.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | 6 | def check_for_NUL(filename, verbose=False): 7 | """ 8 | :param filename: file to check for ASCII 0 bytes 9 | :param verbose: if true, print stuff; if not, don't. 10 | :return: bool, True iff filename contains NUL 11 | """ 12 | with open(filename, 'r') as f: 13 | lines = f.readlines() 14 | 15 | if verbose: print('%s -- checking for NUL bytes' % filename) 16 | has_NULs = False 17 | for i, line in enumerate(lines): 18 | if 0 in (ord(c) for c in line): 19 | has_NULs = True 20 | if verbose: 21 | print("Line %d has NUL" % i) 22 | print(line) 23 | if verbose: print() 24 | 25 | return has_NULs 26 | 27 | if __name__ == '__main__': 28 | import sys 29 | check_for_NUL(sys.argv[1], verbose=True) 30 | 31 | -------------------------------------------------------------------------------- /examples/child_logger2_sub_noprop.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | def report_name_package(): 5 | logging.getLogger(__name__).info("__name__ = %r __package__ = %r" 6 | % (__name__, __package__)) 7 | 8 | 9 | def logging_config_sub(lcd): 10 | """ 11 | Set this logger to propagate=False: 12 | the handlers of parent_loggername WON'T be used. 13 | So this logger will need its own handlers. 14 | """ 15 | # # clone console handler, DON'T add to root, set loglevel = DEBUG 16 | lcd.clone_handler(clone='console_DEBUG', 17 | handler='console', 18 | attach_to_root=False) 19 | lcd.set_handler_level('console_DEBUG', 'DEBUG') 20 | 21 | # use file handler 'app_file' (magic string eh) 22 | lcd.add_logger(__name__, 23 | handlers=['console_DEBUG', 'app_file'], 24 | propagate=False) # propagate=True, logging default 25 | 26 | 27 | def do_something_boring(n): 28 | logging.getLogger(__name__).debug("Doing something boring with %d" % n) 29 | 30 | 31 | def do_something_special(n): 32 | logging.getLogger(__name__).info("Doing something SPECIAL with %d" % n) 33 | 34 | -------------------------------------------------------------------------------- /examples/child_logger2_sub_prop.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | def report_name_package(): 5 | logging.getLogger(__name__).info("__name__ = %r __package__ = %r" 6 | % (__name__, __package__)) 7 | 8 | 9 | def logging_config_sub(lcd): 10 | lcd.add_logger(__name__) # propagate=True, logging default 11 | 12 | 13 | def do_something_boring(n): 14 | logging.getLogger(__name__).debug("Doing something boring with %d" % n) 15 | 16 | 17 | def do_something_special(n): 18 | logging.getLogger(__name__).info("Doing something SPECIAL with %d" % n) 19 | 20 | -------------------------------------------------------------------------------- /examples/child_logger_sub_noprop.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | _logger_name = None # set by logging_config_sub 5 | 6 | 7 | def logging_config_sub(lcd, 8 | parent_loggername, 9 | # *, 10 | file_handler=None): 11 | """ 12 | Set this logger to propagate=False: 13 | the handlers of parent_loggername WON'T be used, 14 | so this logger will need its own handlers. 15 | """ 16 | global _logger_name 17 | _logger_name = parent_loggername + '.sub_noprop' 18 | 19 | # clone console handler, loglevel = DEBUG 20 | lcd.clone_handler(clone='console_DEBUG', 21 | handler='console', 22 | attach_to_root=False) 23 | lcd.set_handler_level('console_DEBUG', 'DEBUG') 24 | 25 | # Use handlers 'console_DEBUG' and file handler file_handler 26 | lcd.add_logger(_logger_name, 27 | handlers=['console_DEBUG', file_handler], 28 | propagate=False) # propagate=True, logging default 29 | 30 | 31 | def do_something_boring(n): 32 | logging.getLogger(_logger_name).debug("Doing something boring with %d" % n) 33 | 34 | 35 | def do_something_special(n): 36 | logging.getLogger(_logger_name).info("Doing something SPECIAL with %d" % n) 37 | 38 | -------------------------------------------------------------------------------- /examples/child_logger_sub_prop.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | _logger_name = None # set by logging_config_sub 5 | 6 | 7 | def logging_config_sub(lcd, 8 | loggername, 9 | # *, 10 | file_handler=None): 11 | global _logger_name 12 | _logger_name = loggername + '.sub_prop' 13 | lcd.add_logger(_logger_name) # propagate=True, logging default 14 | 15 | 16 | def do_something_boring(n): 17 | logging.getLogger(_logger_name).debug("Doing something boring with %d" % n) 18 | 19 | 20 | def do_something_special(n): 21 | logging.getLogger(_logger_name).info("Doing something SPECIAL with %d" % n) 22 | 23 | -------------------------------------------------------------------------------- /examples/custom_callable_formatter.py: -------------------------------------------------------------------------------- 1 | from prelogging import LCDict 2 | import logging 3 | 4 | KEYWORD = 'my_keyword' 5 | 6 | # "callable formatter" 7 | def callable_formatter(logrecord, format, **kwds): 8 | return ( 9 | ("callable_formatter [ %r: %r]: " % (KEYWORD, kwds.get(KEYWORD, None))) 10 | + 11 | (format % vars(logrecord)) 12 | ) 13 | 14 | 15 | def formatter_factory(**kwargs): 16 | format = kwargs.pop('format') 17 | formatter = lambda record: callable_formatter(record, format, **kwargs) 18 | formatter.format = formatter # `logging` requires this 19 | return formatter 20 | 21 | 22 | if __name__ == '__main__': 23 | lcd = LCDict(attach_handlers_to_root=True) 24 | lcd.add_formatter( 'my_formatter', 25 | format='%(name)s - %(levelname)s - %(msg)s', 26 | # dateformat=..., 27 | # style='%', 28 | ** {'()': formatter_factory, 29 | KEYWORD: 'my_value'} ) 30 | lcd.add_stdout_handler('out', formatter='my_formatter') 31 | lcd.config() 32 | 33 | root = logging.getLogger() 34 | root.debug("Debug.") 35 | root.info("Info.") 36 | root.warning("Warning.") 37 | root.error("Error.") 38 | root.critical("Critical.") 39 | """ 40 | callable_formatter [ 'my_keyword': 'my_value']: root - WARNING - Warning. 41 | callable_formatter [ 'my_keyword': 'my_value']: root - ERROR - Error. 42 | callable_formatter [ 'my_keyword': 'my_value']: root - CRITICAL - Critical. 43 | """ 44 | -------------------------------------------------------------------------------- /examples/custom_class_formatter.py: -------------------------------------------------------------------------------- 1 | from prelogging import LCDict 2 | import logging 3 | 4 | KEYWORD = 'my_keyword' 5 | 6 | # "class formatter" 7 | 8 | class MyFormatter(logging.Formatter): 9 | def __init__(self, **kwargs): 10 | self.value=kwargs.pop(KEYWORD, '') 11 | kwargs.pop('class', None) 12 | s = super(MyFormatter, self).__init__(**kwargs) 13 | 14 | def format(self, logrecord, *args, **kwds): 15 | message = super(MyFormatter, self).format(logrecord, *args, **kwds) 16 | return 'MyFormatter [%r: %r] says: %s' % (KEYWORD, self.value, message) 17 | 18 | 19 | if __name__ == '__main__': 20 | lcd = LCDict(attach_handlers_to_root=True) 21 | lcd.add_formatter( 'my_formatter', 22 | format='%(name)s - %(levelname)s - %(message)s', 23 | # dateformat=..., 24 | # style=?, 25 | ** {'()': MyFormatter, 26 | KEYWORD: 'my_value'} ) 27 | lcd.add_stdout_handler('out', formatter='my_formatter') 28 | lcd.config() 29 | 30 | root = logging.getLogger() 31 | root.debug("Debug.") 32 | root.info("Info.") 33 | root.warning("Warning.") 34 | root.error("Error.") 35 | root.critical("Critical.") 36 | """ 37 | MyFormatter ['my_keyword': 'my_value'] says: root - WARNING - Warning. 38 | MyFormatter ['my_keyword': 'my_value'] says: root - ERROR - Error. 39 | MyFormatter ['my_keyword': 'my_value'] says: root - CRITICAL - Critical. 40 | """ 41 | -------------------------------------------------------------------------------- /examples/dateformat.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | import logging 4 | try: 5 | import prelogging 6 | except ImportError: 7 | import sys 8 | sys.path[0:0] = ['..'] 9 | from prelogging import LCDict 10 | 11 | 12 | def main(): 13 | """ 14 | Not a test because... your mileage *will* vary (hard to test). 15 | """ 16 | lcd = LCDict(attach_handlers_to_root=True) 17 | 18 | # style='%' is the default 19 | lcd.add_formatter('fmtr1', 20 | format='%(asctime)s %(levelname)s: %(message)s', 21 | dateformat='%H:%M:%S') 22 | 23 | lcd.add_formatter('fmtr2', 24 | fmt='%(asctime)s -- %(message)s', 25 | datefmt='%Y.%m.%d') # %Y: 4-digit years; %y: 2-digit years 26 | 27 | lcd.add_stdout_handler('con1', formatter='fmtr1') 28 | lcd.add_stdout_handler('con2', formatter='fmtr2') 29 | 30 | lcd.config() 31 | 32 | logging.getLogger().warning('Danger, Will Robinson!') 33 | # Prints, for example: 34 | # 02:32:07 WARNING: Danger, Will Robinson! 35 | # 2018.08.08 -- Danger, Will Robinson! 36 | 37 | if __name__ == "__main__": 38 | main() 39 | -------------------------------------------------------------------------------- /examples/filter-adding-fields--custom-formatter-keywords-for-fields.py: -------------------------------------------------------------------------------- 1 | import logging 2 | from prelogging import LCDict 3 | from random import choice 4 | 5 | """ 6 | Illustrates adding custom fields and data to logged messages. 7 | 8 | Loosely adapts the section 9 | `Using Filters to impart contextual information `_ 10 | of The Logging Cookbook. 11 | """ 12 | 13 | USER = 0 14 | IP = 1 15 | 16 | 17 | class FilterThatAddsFields(): 18 | def __init__(self, *args, **kwargs): 19 | # self.fieldname = kwargs.get('fieldname', '') 20 | self.datasource = kwargs.get('datasource', None) # callable 21 | 22 | def filter(self, record): 23 | """ Add attributes to `record`. 24 | Attr names must be the same as keywords in format arg of `add_formatter` 25 | (below). 26 | """ 27 | record.user = self.datasource(USER) 28 | record.ip = self.datasource(IP) 29 | return True 30 | 31 | 32 | def get_data(keyword): 33 | """ Source of dynamic data, passed to filter via `add_class_filter` """ 34 | IPS = ['192.0.0.1', '254.15.16.17'] 35 | USERS = ['John', 'Mary', 'Arachnid'] 36 | 37 | if keyword == IP: 38 | return choice(IPS) 39 | elif keyword == USER: 40 | return choice(USERS) 41 | return None 42 | 43 | 44 | def config_logging(): 45 | lcd = LCDict(attach_handlers_to_root=True, 46 | root_level='DEBUG') 47 | lcd.add_formatter('user_ip_level_msg', 48 | format='User: %(user)-10s IP: %(ip)-15s %(levelname)-8s %(message)s') 49 | lcd.add_stdout_handler('console-out', 50 | level='DEBUG', 51 | formatter='user_ip_level_msg') 52 | lcd.add_class_filter('field-adding_filter', FilterThatAddsFields, 53 | # extra, static data 54 | datasource=get_data) 55 | lcd.attach_root_filters('field-adding_filter') 56 | 57 | lcd.config() 58 | 59 | 60 | if __name__ == '__main__': 61 | LEVELS = (logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL) 62 | config_logging() 63 | # root = logging.getLogger() 64 | 65 | for i in range(10): 66 | logging.log(choice(LEVELS), "Msg %d", i) 67 | ''' 68 | Prints something like (ymwv): 69 | User: Arachnid IP: 254.15.16.17 CRITICAL Msg 0 70 | User: John IP: 192.0.0.1 INFO Msg 1 71 | User: Mary IP: 192.0.0.1 DEBUG Msg 2 72 | User: John IP: 192.0.0.1 CRITICAL Msg 3 73 | User: Mary IP: 254.15.16.17 WARNING Msg 4 74 | User: John IP: 254.15.16.17 CRITICAL Msg 5 75 | User: John IP: 254.15.16.17 DEBUG Msg 6 76 | User: John IP: 254.15.16.17 CRITICAL Msg 7 77 | User: Arachnid IP: 192.0.0.1 DEBUG Msg 8 78 | User: Mary IP: 254.15.16.17 ERROR Msg 9 79 | ''' 80 | -------------------------------------------------------------------------------- /examples/filter-callable-extra-static-data.py: -------------------------------------------------------------------------------- 1 | import logging 2 | from prelogging import LCDict 3 | 4 | _level_count = 0 5 | 6 | 7 | def filter_fn(record, **kwargs): 8 | """ Returns int or bool -- not great practice, but just to distinguish 9 | which branch of if-then-else was taken. 10 | """ 11 | filtername = kwargs.get('filtername', '') 12 | loglevel_to_count = kwargs.get('loglevel_to_count', 0) 13 | 14 | """Suppress odd-numbered messages (records) 15 | whose level == loglevel_to_count, 16 | where the "first" message is 0-th hence even-numbered. 17 | """ 18 | global _level_count 19 | if record.levelno == loglevel_to_count: 20 | _level_count += 1 21 | ret = _level_count % 2 # int 22 | else: 23 | ret = True # bool 24 | 25 | print("{}: record levelname = {}, _level_count = {}; returning {}". 26 | format(filtername, record.levelname, 27 | _level_count, ret)) 28 | return ret 29 | 30 | 31 | def config_logging(): 32 | lcd = LCDict(attach_handlers_to_root=True, 33 | root_level='DEBUG') 34 | lcd.add_stdout_handler('console-out', 35 | level='DEBUG', 36 | formatter='level_msg') 37 | lcd.add_callable_filter('count_info', filter_fn, 38 | # extra, static data 39 | filtername='count_info', 40 | loglevel_to_count=logging.INFO) 41 | lcd.attach_root_filters('count_info') 42 | 43 | lcd.config() 44 | 45 | 46 | if __name__ == '__main__': 47 | config_logging() 48 | 49 | root = logging.getLogger() 50 | 51 | for i in range(2): 52 | print("\ni ==", i) 53 | root.debug(str(i)) 54 | root.info(str(i)) 55 | -------------------------------------------------------------------------------- /examples/filter-class-extra-static-data.py: -------------------------------------------------------------------------------- 1 | import logging 2 | from prelogging import LCDict 3 | 4 | 5 | class CountAndSquelchOdd(): 6 | def __init__(self, *args, **kwargs): 7 | self.level_count = 0 8 | 9 | print(kwargs) 10 | # {'filtername': _____, 'loglevel_to_count': nnn} 11 | self.filtername = kwargs.get('filtername', '') 12 | self.loglevel_to_count = kwargs.get('loglevel_to_count', 0) 13 | 14 | def filter(self, record): 15 | """Suppress odd-numbered messages (records) 16 | whose level == self.loglevel_to_count, 17 | where the "first" message is 0-th hence even-numbered. 18 | 19 | Returns int or bool -- not great practice, but just to distinguish 20 | which branch of if-then-else was taken. 21 | """ 22 | if record.levelno == self.loglevel_to_count: 23 | self.level_count += 1 24 | ret = self.level_count % 2 # int 25 | else: 26 | ret = True # bool 27 | 28 | print("{:11s} > record levelname = {}, self.level_count = {}; returning {}". 29 | format(self.filtername, record.levelname, 30 | self.level_count, ret)) 31 | return ret 32 | 33 | def config_logging(): 34 | lcd = LCDict(attach_handlers_to_root=True, 35 | root_level='DEBUG') 36 | lcd.add_stdout_handler('console-out', 37 | level='DEBUG', 38 | formatter='level_msg') 39 | lcd.add_class_filter('count_debug', CountAndSquelchOdd, 40 | # extra, static data 41 | filtername='count_debug', 42 | loglevel_to_count=logging.DEBUG) 43 | lcd.add_class_filter('count_info', CountAndSquelchOdd, 44 | # extra, static data 45 | filtername='count_info', 46 | loglevel_to_count=logging.INFO) 47 | lcd.attach_root_filters('count_debug', 'count_info') 48 | 49 | lcd.config() 50 | 51 | if __name__ == '__main__': 52 | config_logging() 53 | root = logging.getLogger() 54 | 55 | for i in range(2): 56 | print("\ni ==", i) 57 | root.debug(str(i)) 58 | print("---") 59 | root.info(str(i)) 60 | -------------------------------------------------------------------------------- /examples/library/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | import logging 4 | try: 5 | import prelogging 6 | except ImportError: 7 | import sys 8 | sys.path[0:0] = ['../..'] 9 | from prelogging import LCDict 10 | 11 | 12 | from .module import * 13 | from . import module 14 | __all__ = module.__all__ 15 | 16 | 17 | # configure logging 18 | lcd = LCDict() # default: disable_existing_loggers=False 19 | lcd.add_null_handler('library-nullhandler') # default: level='NOTSET' 20 | lcd.add_logger('library', handlers='library-nullhandler', level='INFO') 21 | lcd.config() 22 | -------------------------------------------------------------------------------- /examples/library/module.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | import logging 4 | 5 | __all__ = ['do_package_thing', 'do_something', 'do_something_else'] 6 | 7 | 8 | def do_package_thing(): 9 | logger = logging.getLogger(__package__) 10 | logger.info("INFO msg from package logger") 11 | print("Did package thing.") 12 | 13 | def do_something(): 14 | logger = logging.getLogger(__name__) 15 | logger.debug("DEBUG msg") 16 | logger.info("INFO msg") 17 | print("Did something.") 18 | 19 | def do_something_else(): 20 | logging.getLogger(__name__ + '.other').warning("WARNING msg") 21 | print("Did something else.") 22 | -------------------------------------------------------------------------------- /examples/mproc_deco.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | __version__ = '0.2' 5 | 6 | try: 7 | from deco import * 8 | except ImportError: 9 | raise ImportError("`mproc_deco.py` requires the `deco` package -- " 10 | "https://github.com/alex-sherman/deco") 11 | 12 | import time 13 | import random 14 | from collections import defaultdict 15 | 16 | import logging 17 | 18 | 19 | try: 20 | import prelogging 21 | except ImportError: 22 | import sys 23 | sys.path[0:0] = ['..'] 24 | from prelogging import LCDict 25 | 26 | from examples._get_locking_pref import get_locking_pref 27 | 28 | 29 | @concurrent # add this for the concurrent function 30 | def process_lat_lon(lat, lon, data): 31 | time.sleep(0.1) 32 | 33 | logging.getLogger().info("processing lat, lon = %d, %d" 34 | "\n\t %d, %d" 35 | % (lat, lon, lat, lon) 36 | # % (lat, lon) 37 | ) 38 | # logging.getLogger().debug('processing %d, %d' % (lat, lon)) # or use __name__ 39 | 40 | return data[lat + lon] 41 | 42 | 43 | @synchronized # add this for the function that calls the concurrent function 44 | def process_data_set(data): 45 | results = defaultdict(dict) 46 | for lat in range(5): 47 | for lon in range(5): 48 | logging.getLogger().info("lat, lon = %d, %d" % (lat, lon)) 49 | 50 | results[lat][lon] = process_lat_lon(lat, lon, data) 51 | 52 | return dict(results) 53 | 54 | 55 | def config_logging(use_locking): 56 | logfilename = 'logfile (%s).log' % ('LOCKING' if use_locking else 'NOLOCKING') 57 | lcd = LCDict(log_path='_log/mproc_deco/', 58 | root_level='DEBUG', 59 | attach_handlers_to_root=True, 60 | locking=use_locking) 61 | # Set up console handler to show process name, time, handler name 62 | lcd.add_stderr_handler( 63 | 'console', formatter='process_time_logger_level_msg', level='INFO' 64 | ) 65 | # Add main file handler, which will write to log_path + '/' + logfilename 66 | lcd.add_file_handler( 67 | 'app_file', 68 | filename=logfilename, 69 | mode='w', 70 | formatter='process_time_logger_level_msg', 71 | ) 72 | lcd.config() 73 | 74 | 75 | def main(use_locking=None): 76 | """ 77 | :param use_locking: bool 78 | """ 79 | if use_locking is None: 80 | use_locking = get_locking_pref() 81 | 82 | config_logging(use_locking) 83 | 84 | random.seed(0) 85 | data = [random.random() for _ in range(200)] 86 | start = time.time() 87 | logging.getLogger().debug(process_data_set(data)) 88 | # Epilogue 89 | logging.getLogger().debug(time.time() - start) 90 | 91 | 92 | if __name__ == "__main__": 93 | main() 94 | -------------------------------------------------------------------------------- /examples/queue_handler_listener.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | __doc__ = """ 6 | An example that illustrates how to use a QueueListener with `prelogging` so that 7 | messages can be logged on a separate thread. In this way, handlers that block 8 | and take long to complete (e.g. SMTP handlers, which send emails) won't make 9 | other threads (e.g. the UI thread) stall and stutter. 10 | 11 | For motivation, see 12 | 13 | `Dealing with handlers that block 14 | `_ 15 | 16 | We've adapted the code in that section to `prelogging`. 17 | 18 | Another approach can be found in the example 19 | ``mproc_approach__queue_handler_logging_thread.py``. 20 | """ 21 | 22 | import logging 23 | 24 | try: 25 | import prelogging 26 | except ImportError: 27 | import sys 28 | sys.path[0:0] = ['..'] # , '../..' 29 | from prelogging import LCDict 30 | 31 | from prelogging.six import PY2 32 | if PY2: 33 | exit("%s: logging.handlers.QueueHandler doesn't exist in Python 2" 34 | % __file__) 35 | 36 | from queue import Queue 37 | from time import sleep 38 | 39 | 40 | def main(): 41 | 42 | q = Queue(-1) # no limit on size 43 | 44 | LCDict( 45 | attach_handlers_to_root=True 46 | ).add_formatter( 47 | 'fmtr', format='%(threadName)s: %(name)s: %(levelname)-8s: %(message)s' 48 | ).add_stderr_handler( 49 | 'con', formatter='fmtr' 50 | ).add_queue_handler( 51 | 'qhandler', queue=q 52 | ).config() 53 | 54 | root = logging.getLogger() 55 | 56 | # NOTE the following kludge for obtaining a reference to the QueueHandler 57 | # attached to root. As of Py3.7, the ``handlers`` attribute of a Logger 58 | # is undocumented. A more concise way to write the condition is to use 59 | # the ``name`` property of Handlers, also undocumented as of 3.7: 60 | # if handler.name == 'qhandler' 61 | # 62 | the_qhandler = [handler for handler in root.handlers 63 | if isinstance(handler, logging.handlers.QueueHandler)][0] 64 | listener = logging.handlers.QueueListener(q, the_qhandler) 65 | listener.start() 66 | # The log output will display the thread which generated 67 | # the event (the main thread) rather than the internal 68 | # thread which monitors the internal queue. This is what 69 | # you want to happen. 70 | root.warning('Look out!') 71 | sleep(1) 72 | root.error('Too late!') 73 | listener.stop() 74 | 75 | # which, when run, will produce: 76 | # MainThread: root: WARNING : Look out! 77 | # MainThread: root: ERROR : Too late! 78 | 79 | 80 | if __name__ == '__main__': 81 | main() 82 | -------------------------------------------------------------------------------- /examples/requirements.txt: -------------------------------------------------------------------------------- 1 | deco>=0.2 2 | -------------------------------------------------------------------------------- /examples/root_logger.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | import logging 6 | 7 | try: 8 | import prelogging 9 | except ImportError: 10 | import sys 11 | sys.path[0:0] = ['..'] # , '../..' 12 | from prelogging import LCDict 13 | 14 | 15 | ############################################################################# 16 | 17 | def config_logging(log_path, logfilename=''): 18 | """Create a root logger with a stdout console handler with loglevel=INFO, 19 | and, if logfilename is not empty, a file handler with default loglevel=NOTSET. 20 | Root loglevel will be INFO. 21 | """ 22 | lcd = LCDict(log_path=log_path, 23 | attach_handlers_to_root=True, 24 | root_level='INFO') 25 | lcd.add_stdout_handler('console', level='INFO', formatter='msg') 26 | if logfilename: 27 | # add a file handler, which will write to log_path + '/' + logfilename 28 | lcd.add_formatter( 29 | 'my_file_formatter', 30 | format='%(levelname)-8s: %(message)s', 31 | ).add_file_handler( 32 | 'app_file', 33 | filename=logfilename, 34 | mode='w', 35 | formatter='my_file_formatter' 36 | ) 37 | # lcd.dump() # | DEBUG 38 | 39 | lcd.config() 40 | 41 | 42 | def main(): 43 | LOG_PATH = '_log/root_logger' # NOTE: directory should already exist 44 | logfilename = 'logfile.log' 45 | 46 | config_logging(LOG_PATH, logfilename) 47 | 48 | logger = logging.getLogger() 49 | logger.debug("1. Message not logged") 50 | logger.warning("2. Log to both file and console") 51 | 52 | logger.setLevel(logging.DEBUG) 53 | logger.debug("3. Log to file only") 54 | logger.warning("4. Log to both file and console") 55 | 56 | # _log/root_logger/logfile.log contains these lines, flush left: 57 | # WARNING : 2. Log to both file and console 58 | # DEBUG : 3. Log to file only 59 | # WARNING : 4. Log to both file and console 60 | 61 | # Logged to the console (stdout), flush left: 62 | # 2. Log to both file and console 63 | # 4. Log to both file and console 64 | 65 | 66 | 67 | ############################################################################# 68 | 69 | if __name__ == '__main__': 70 | main() 71 | -------------------------------------------------------------------------------- /examples/syslog.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | NON-multiprocessing rotating file handler. 4 | """ 5 | 6 | __author__ = 'brianoneill' 7 | 8 | import logging 9 | # from pprint import pformat 10 | 11 | try: 12 | import prelogging 13 | except ImportError: 14 | import sys 15 | sys.path[0:0] = ['../..'] 16 | from prelogging import LCDict 17 | 18 | 19 | ############################################################################# 20 | import sys 21 | 22 | def config_logging(): 23 | """Add a stdout console handler with level=WARNING to the root logger, 24 | and a syslog handler with default level=NOTSET. 25 | Root logger level will be DEBUG. 26 | """ 27 | # Defaults: 28 | # attach_handlers_to_root=False, 29 | lcd = LCDict(attach_handlers_to_root=True, 30 | locking=True, 31 | root_level='DEBUG') 32 | 33 | lcd.add_stdout_handler('console', level='WARNING', formatter='msg') 34 | 35 | if not sys.platform.startswith('darwin'): 36 | raise NotImplementedError( 37 | "This example is currently implemented only for OS X / macOS") 38 | 39 | # add a syslog handler 40 | lcd.add_syslog_handler( 41 | 'h_syslog', 42 | formatter='logger_level_msg', 43 | address='/var/run/syslog', 44 | ) 45 | lcd.config() 46 | 47 | ############################################################################# 48 | 49 | def main(): 50 | config_logging() 51 | logger = logging.getLogger() 52 | 53 | logger.debug("1 blah") 54 | logger.info("2 blah^2") 55 | logger.warning("3 Now is the time for the crazy brown fox to come to the aid of the party") 56 | logger.error("4 blah^4") 57 | logger.critical("5 blah^5") 58 | 59 | 60 | if __name__ == '__main__': 61 | main() 62 | -------------------------------------------------------------------------------- /examples/use_library.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | import library 6 | 7 | import logging 8 | 9 | try: 10 | import prelogging 11 | except ImportError: 12 | import sys 13 | sys.path[0:0] = ['..'] # , '../..' 14 | from prelogging import LCDict 15 | 16 | 17 | def logging_config(): 18 | d = LCDict(attach_handlers_to_root=True) # LCDict default: =False 19 | d.add_stdout_handler('stdout', formatter='logger_level_msg', level='DEBUG') 20 | # NOTE: root level is WARNING (default), 21 | # . 'library' logger level is INFO. 22 | # . Messages of 'library' propagate, 23 | # . and those of levels INFO and up *are logged*. 24 | d.config() 25 | 26 | 27 | def main(): 28 | # Exercise: 29 | # Comment out and uncomment the following two lines, individually 30 | # (4 cases); observe the console output in each case. 31 | 32 | logging_config() 33 | logging.getLogger().warning("I must caution you about that.") 34 | 35 | library.do_package_thing() 36 | library.do_something() 37 | library.do_something_else() 38 | 39 | # Results: 40 | """ 41 | (1) 42 | logging_config() 43 | logging.getLogger().warning("I must caution you about that.") 44 | writes to stdout: 45 | root : WARNING : I must caution you about that. 46 | library : INFO : INFO msg from package logger 47 | Did package thing. 48 | library.module : INFO : INFO msg 49 | Did something. 50 | library.module.other: WARNING : WARNING msg 51 | Did something else. 52 | (2) 53 | # logging_config() 54 | logging.getLogger().warning("I must caution you about that.") 55 | 56 | writes (to stdout) 57 | Did package thing. 58 | Did something. 59 | Did something else. 60 | and (to stderr) 61 | I must caution you about that. 62 | (possibly between or after the lines written to stdout). 63 | 64 | (3) 65 | logging_config() 66 | # logging.getLogger().warning("I must caution you about that.") 67 | writes to stdout: 68 | library : INFO : INFO msg from package logger 69 | Did package thing. 70 | library.module : INFO : INFO msg 71 | Did something. 72 | library.module.other: WARNING : WARNING msg 73 | Did something else. 74 | (4) 75 | # logging_config() 76 | # logging.getLogger().warning("I must caution you about that.") 77 | writes to stdout 78 | Did package thing. 79 | Did something. 80 | Did something else. 81 | """ 82 | 83 | 84 | if __name__ == '__main__': 85 | main() 86 | -------------------------------------------------------------------------------- /prelogging/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = "Brian O'Neill" 2 | 3 | from ._version import __version_sans_release__, __version__ 4 | from .lcdictbasic import LCDictBasic 5 | from .lcdict import LCDict 6 | from . import (locking_handlers, lcdict_builder_abc, formatter_presets) 7 | from .locking_handlers import * 8 | from .formatter_presets import * 9 | from .lcdict_builder_abc import * 10 | 11 | __all__ = ( 12 | ['__author__', 13 | '__version_sans_release__', 14 | '__version__', 15 | 'LCDictBasic', 16 | 'LCDict', 17 | ] + 18 | locking_handlers.__all__ + 19 | lcdict_builder_abc.__all__ + 20 | formatter_presets.__all__ 21 | ) 22 | -------------------------------------------------------------------------------- /prelogging/_version.py: -------------------------------------------------------------------------------- 1 | __version_sans_release__ = '0.4.3' 2 | __version__ = __version_sans_release__ + '' 3 | -------------------------------------------------------------------------------- /prelogging/formatter_presets.txt: -------------------------------------------------------------------------------- 1 | msg 2 | format: '%(message)s' 3 | 4 | level_msg 5 | format: '%(levelname)-8s: %(message)s' 6 | 7 | process_msg 8 | format: '%(processName)-10s: %(message)s' 9 | 10 | logger_process_msg 11 | format: '%(name)-20s: %(processName)-10s: %(message)s' 12 | 13 | logger_level_msg 14 | format: '%(name)-20s: %(levelname)-8s: %(message)s' 15 | 16 | logger_msg 17 | format: '%(name)-20s: %(message)s' 18 | 19 | process_level_msg 20 | format: '%(processName)-10s: %(levelname)-8s: %(message)s' 21 | 22 | process_time_level_msg 23 | format: '%(processName)-10s: %(asctime)s: %(levelname)-8s: %(message)s' 24 | 25 | process_logger_level_msg 26 | format: '%(processName)-10s: %(name)-20s: %(levelname)-8s: %(message)s' 27 | 28 | process_time_logger_level_msg 29 | format: '%(processName)-10s: %(asctime)s: %(name)-20s: %(levelname)-8s: %(message)s' 30 | 31 | time_logger_level_msg 32 | format: '%(asctime)s: %(name)-20s: %(levelname)-8s: %(message)s' 33 | -------------------------------------------------------------------------------- /run_all.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | __author__ = 'brianoneill' 4 | 5 | import os 6 | from _execfile import _execfile 7 | 8 | _execfile('run_tests.py') # cwd = prelogging/tests/ 9 | os.chdir('..') 10 | _execfile('run_examples.py') # cwd = examples/ 11 | # # print( ">>>>>>>>>>>>> CWD:", os.getcwd() ) 12 | # os.chdir('..') 13 | # _execfile('run_examples2.py') 14 | -------------------------------------------------------------------------------- /run_tests.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3 2 | 3 | import os 4 | import sys 5 | import unittest 6 | 7 | def usage(): 8 | """Usage: /run_tests.py [-v | -q | -h] 9 | is the path to the directory containing run_tests.py. 10 | Use . if running it from its own directory. 11 | -v Verbose output, each test that's run is listed. 12 | -q Quiet(est) output. 13 | -h Display this message. 14 | """ 15 | exit(usage.__doc__) 16 | 17 | verbosity = 1 18 | if len(sys.argv) > 1: 19 | arg = sys.argv[1].upper() 20 | 21 | if arg.startswith("-H"): 22 | usage() # exits 23 | 24 | if arg.startswith("-Q"): 25 | verbosity = 0 26 | elif arg.startswith("-V"): 27 | verbosity = 2 28 | 29 | home, _ = os.path.split(__file__) 30 | tests_dir = os.path.join(home, 'tests') 31 | 32 | # 0.2.4 Change to tests_dir, which tests expect 33 | tests_dir = os.path.abspath(tests_dir) 34 | os.chdir(tests_dir) 35 | 36 | unittest.TextTestRunner(verbosity=verbosity).run( 37 | unittest.defaultTestLoader.discover(tests_dir) 38 | ) 39 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | ### description-file = README.rst 3 | upload-dir = docs/_build/html 4 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # PyPI supports rST, hence: 4 | __doc__ = """\ 5 | `prelogging` streamlines the configuration of Python logging, provides 6 | better error checking, and offers easy multiprocessing-safe 7 | logging to streams, files, rotating files and the system log. 8 | """ 9 | from prelogging import __version__, __author__ 10 | from setuptools import setup #, find_packages 11 | 12 | setup( 13 | name='prelogging', 14 | version=__version__, 15 | author=__author__, # "Brian O'Neill", 16 | author_email='twangist@gmail.com', 17 | description='streamlines the configuration of Python logging, includes ' 18 | 'multiprocessing-safe handlers', 19 | long_description=__doc__, 20 | license='MIT', 21 | keywords='logging config dictConfig dict configuration multiprocessing ' 22 | 'rotating file syslog SMTP queue handler', 23 | url='http://github.com/Twangist/prelogging', 24 | packages=['prelogging'], 25 | test_suite='run_tests.py', 26 | scripts=[], 27 | include_package_data=False, 28 | classifiers=[ 29 | 'Development Status :: 5 - Production/Stable', 30 | 'License :: OSI Approved :: MIT License', 31 | 'Programming Language :: Python', 32 | 'Programming Language :: Python :: 2.7', 33 | 'Programming Language :: Python :: 3', 34 | 'Programming Language :: Python :: 3.4', 35 | 'Programming Language :: Python :: 3.5', 36 | 'Programming Language :: Python :: 3.6', 37 | 'Programming Language :: Python :: 3.7', 38 | 'Programming Language :: Python :: Implementation :: CPython', 39 | 'Intended Audience :: Developers', 40 | 'Operating System :: OS Independent', 41 | 'Topic :: Software Development :: Libraries', 42 | 'Topic :: Utilities', 43 | 'Topic :: System :: Logging', 44 | ] 45 | ) 46 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/tests/__init__.py -------------------------------------------------------------------------------- /tests/_testlogs/builder/subA.log: -------------------------------------------------------------------------------- 1 | subA : ERROR : 13. 2 | subA : CRITICAL: 14. 3 | -------------------------------------------------------------------------------- /tests/_testlogs/builder/subB.log: -------------------------------------------------------------------------------- 1 | subB : DEBUG : 20. 2 | subB : INFO : 21. 3 | subB : WARNING : 22. 4 | subB : ERROR : 23. 5 | subB : CRITICAL: 24. 6 | -------------------------------------------------------------------------------- /tests/_testlogs/logfile.log: -------------------------------------------------------------------------------- 1 | WARNING : 2. Log to both file and console 2 | DEBUG : 3. Log to file only 3 | WARNING : 4. Log to both file and console 4 | -------------------------------------------------------------------------------- /tests/_testlogs/logfile_delay.log: -------------------------------------------------------------------------------- 1 | INFO : 2. Log to both file and console 2 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.1: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.10: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.2: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.3: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.4: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.5: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.6: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 1 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 1 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.7: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 0 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 0 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.8: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 3 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 3 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/_testlogs/rot_fh/test_rot_fh.log.9: -------------------------------------------------------------------------------- 1 | DEBUG : <<<< 2 >>>> AAAAAaaaaaBBBBBbbbbbCCCCCcccccDDDDDdddddEEEEEeeeeeFFFFFfffffGGGGGggggg 2 | WARNING : <<<< 2 >>>> 0....x....1....x....2....x....3....x....4....x....5....x....6....x.... 3 | -------------------------------------------------------------------------------- /tests/blather.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Twangist/prelogging/64fac0f9b13764d1b00431511aae04754a039b89/tests/blather.log -------------------------------------------------------------------------------- /tests/formatter_presets_badfile.txt: -------------------------------------------------------------------------------- 1 | formatter_name 2 | bad-key-value-line 3 | -------------------------------------------------------------------------------- /tests/test_formatter_style.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | import sys 4 | sys.path[0:0] = ['../..'] # prepend 5 | from prelogging import LCDict 6 | import logging 7 | from prelogging.six import PY2 8 | 9 | if PY2: 10 | def test_formatter_style(): 11 | """ 12 | """ 13 | pass 14 | else: 15 | def test_formatter_style(): 16 | """ 17 | >>> lcd = LCDict(attach_handlers_to_root=True) 18 | 19 | >>> # style='%' is the default, & could be omitted 20 | >>> _ = lcd.add_formatter('testform-%', 21 | ... format='%(levelname)s: %(name)s: %(message)s', 22 | ... style='%') 23 | >>> _ = lcd.add_formatter('testform-{', 24 | ... format='{levelname}: {name}: {message}', 25 | ... style='{') 26 | >>> _ = lcd.add_formatter('testform-$', 27 | ... format='$levelname: $name: $message', 28 | ... style='$') 29 | 30 | >>> _ = lcd.add_stdout_handler('con-%', formatter='testform-%') 31 | >>> _ = lcd.add_stdout_handler('con-{', formatter='testform-{') 32 | >>> _ = lcd.add_stdout_handler('con-$', formatter='testform-$') 33 | >>> _ = lcd.config() 34 | 35 | >>> root = logging.getLogger() 36 | >>> root.warning('Hi there') 37 | WARNING: root: Hi there 38 | WARNING: root: Hi there 39 | WARNING: root: Hi there 40 | """ 41 | pass 42 | 43 | 44 | ############################################################################## 45 | 46 | import doctest 47 | 48 | # For unittest integration 49 | def load_tests(loader, tests, ignore): 50 | tests.addTests(doctest.DocTestSuite()) 51 | return tests 52 | 53 | if __name__ == "__main__": 54 | doctest.testmod() # (verbose=True) 55 | -------------------------------------------------------------------------------- /tests/test_lcdict_builder.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | import logging 4 | 5 | try: 6 | import prelogging 7 | except ImportError: 8 | import sys 9 | sys.path[0:0] = ['../..'] 10 | from prelogging import LCDict, LCDictBuilderABC 11 | 12 | ############################################################################## 13 | 14 | from test_lcdict_builders_top import LCDictBuilder 15 | import test_lcdict_builder_SubA 16 | import test_lcdict_builder_SubB 17 | 18 | ############################################################################## 19 | # test(s) 20 | ############################################################################## 21 | 22 | def test_builder(): 23 | """ 24 | >>> LOG_PATH = '_testlogs/builder' 25 | >>> lcd = LCDictBuilder.build_lcdict( 26 | ... root_level='WARNING', 27 | ... log_path=LOG_PATH, 28 | ... locking=False, 29 | ... attach_handlers_to_root=False) 30 | >>> lcd.config() 31 | 32 | Now log some messages 33 | 34 | >>> root = logging.getLogger() 35 | >>> loggerA = logging.getLogger('subA') 36 | >>> loggerB = logging.getLogger('subB') 37 | 38 | >>> root.debug( "0.") 39 | >>> root.info( "1.") 40 | >>> root.warning( "2.") 41 | root : WARNING : 2. 42 | >>> root.error( "3.") 43 | root : ERROR : 3. 44 | >>> root.critical("4.") 45 | root : CRITICAL: 4. 46 | 47 | >>> loggerA.debug( "10.") 48 | >>> loggerA.info( "11.") 49 | >>> loggerA.warning( "12.") 50 | >>> loggerA.error( "13.") 51 | subA : ERROR : 13. 52 | >>> loggerA.critical("14.") 53 | subA : CRITICAL: 14. 54 | 55 | >>> loggerB.debug( "20.") 56 | >>> loggerB.info( "21.") 57 | >>> loggerB.warning( "22.") 58 | >>> loggerB.error( "23.") 59 | >>> loggerB.critical("24.") 60 | 61 | Check logfile contents 62 | 63 | >>> import os 64 | >>> with open(os.path.join(LOG_PATH, 'subA.log')) as f: 65 | ... text_A = f.read() 66 | >>> text_A == ("subA : ERROR : 13.\\n" 67 | ... "subA : CRITICAL: 14.\\n") 68 | True 69 | 70 | >>> with open(os.path.join(LOG_PATH, 'subB.log')) as f: 71 | ... text_B = f.read() 72 | >>> text_B == ("subB : DEBUG : 20.\\n" 73 | ... "subB : INFO : 21.\\n" 74 | ... "subB : WARNING : 22.\\n" 75 | ... "subB : ERROR : 23.\\n" 76 | ... "subB : CRITICAL: 24.\\n") 77 | True 78 | """ 79 | pass 80 | 81 | 82 | ############################################################################## 83 | 84 | import doctest 85 | 86 | # For unittest integration 87 | def load_tests(loader, tests, ignore): 88 | tests.addTests(doctest.DocTestSuite()) 89 | return tests 90 | 91 | if __name__ == "__main__": 92 | 93 | doctest.testmod() # (verbose=True) 94 | -------------------------------------------------------------------------------- /tests/test_lcdict_builder_SubA.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | from test_lcdict_builders_top import LCDBuilderSub 4 | 5 | 6 | class LCDBuilderSubA(LCDBuilderSub): 7 | @classmethod 8 | def add_to_lcdict(cls, lcd): 9 | """(Virtual) Call ``LCDict`` methods to augment ``lcd``. 10 | 11 | :param lcd: an ``LCDict`` 12 | """ 13 | # Set up a logger 'subA' and a file handler it exclusively uses. 14 | # Assume the code that uses this module is well-debugged and stable, 15 | # so we an set logger's level = ``ERROR``. 16 | # 17 | # Messages logged by logger 'subA' will be written 18 | # to logfile 'subA.log', and 19 | # to root logger (propagate=True). 20 | # Root logger will NOT log to 'subA.log' (attach_to_root=False) 21 | lcd.add_file_handler('subA-fh', 22 | filename='subA.log', 23 | mode='w', 24 | formatter='logger_level_msg', 25 | attach_to_root=False) 26 | lcd.add_logger('subA', 27 | handlers='subA-fh', 28 | level='ERROR', 29 | propagate=True) 30 | -------------------------------------------------------------------------------- /tests/test_lcdict_builder_SubB.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | from test_lcdict_builders_top import LCDBuilderSub 4 | 5 | class LCDBuilderSubB(LCDBuilderSub): 6 | @classmethod 7 | def add_to_lcdict(cls, lcd): 8 | """(Virtual) Call ``LCDict`` methods to augment ``lcd``. 9 | 10 | :param lcd: an ``LCDict`` 11 | """ 12 | # Configure so that messages logged by logger 'subB' 13 | # will be written to logfile 'subB.log', and 14 | # will NOT also be written by root logger's handlers (propagate=False) 15 | # Root logger will NOT log to 'subB.log' (attach_to_root=False) 16 | # Assume the code that uses this logger is in development, 17 | # so we'll set level to ``DEBUG``. 18 | lcd.add_file_handler('subB-fh', 19 | filename='subB.log', 20 | mode='w', 21 | formatter='logger_level_msg', 22 | attach_to_root=False) 23 | lcd.add_logger('subB', 24 | handlers='subB-fh', 25 | level='DEBUG', 26 | propagate=False) 27 | 28 | -------------------------------------------------------------------------------- /tests/test_lcdict_builders_top.py: -------------------------------------------------------------------------------- 1 | __author__ = 'brianoneill' 2 | 3 | try: 4 | import prelogging 5 | except ImportError: 6 | import sys 7 | sys.path[0:0] = ['../..'] 8 | 9 | from prelogging import LCDictBuilderABC 10 | 11 | 12 | ############################################################################## 13 | # LCDictBuilderABC subclasses 14 | ############################################################################## 15 | 16 | class LCDictBuilder(LCDictBuilderABC): 17 | @classmethod 18 | def add_to_lcdict(cls, lcd): 19 | """(Virtual) Call ``LCDict`` methods to augment ``lcd``. 20 | 21 | :param lcd: an ``LCDict`` 22 | """ 23 | lcd.add_stdout_handler('con-out', 24 | formatter='logger_level_msg', 25 | attach_to_root=True) 26 | 27 | class LCDBuilderSub(LCDictBuilder): 28 | """An LCDBuilder class to organize a group of subclasses, 29 | perhaps to share data (class attributes). 30 | This class does **not** implement ``add_to_lcd``, 31 | which therefore will **not** be called on it 32 | (as that would call ``LCDBuilder.add_to_lcd`` a second time). 33 | """ 34 | pass 35 | --------------------------------------------------------------------------------