TimedRotatingFileHandler using ctime instead of mtime to determine rollover times.
Project description
CTimedRotatingFileHandler
TimedRotatingFileHandler using ctime
instead of mtime
to determine rollover times.
This module provides a subclass CTimedRotatingFileHandler
of logging.handlers.TimedRotatingFileHandler
that uses
file creation time instead of file modification time to calculate the next rollover time.
It also contains a workaround for "file system tunneling" on Windows, which prevents new files from having new
creation times if they have already existed a short time ago.
To be able to do this, a new dependency to win32-setctime
is introduced (only needed if running on Windows).
Usage Example
import logging
from ctimed_rotating_file_handler import CTimedRotatingFileHandler
logfile = 'path/to/logdir/MyName.log'
loglevel=logging.DEBUG
backupcount = 7
logformat='%(asctime)s\t%(levelname)s\t%(name)s\t%(message)s'
log = logging.getLogger()
formatter = logging.Formatter(fmt=logformat)
loghandler = CTimedRotatingFileHandler(logfile, when='midnight', interval=1, backupCount=backupcount)
loghandler.setFormatter(formatter)
logging.root.addHandler(loghandler)
logging.root.setLevel(loglevel)
log.info('This is an information.')
Development and building
Prerequesites
- Python 3.9 has to be installed with
pip
and packages:virtualenv
build
Setup development environment
After cloning the repo, you should create a virtual environment for all further development work.
This may be done by calling one of the included setup_venv
scripts for your platform:
setup_venv.cmd
: Windows batchsetup_venv.ps1
: Windows Powershellsetup_venv.sh
: Bash
This will
- create a new virtual environment in the directory
venv
or update an existing one, - install all requirements from
requirements.txt
.
You still have to activate the venv manually (or automatically by configuring it in your IDE).
Building the package
All buils settings are inside pyproject.toml
.
You might want to change project.version
before building (eg. add .dev1
to it), so you always know which one
you are dealing with.
To build the project, simply run this command from inside the project directory (the same directory that contains
pyproject.toml
):
python -m build
This will create .whl
and .tar.gz
in the directory dist
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ctimed_rotating_file_handler-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f89c42f387ac9daa9f4e8f0dc43da9334e4da49a7ccf1d6aec30041b4a7a3ba |
|
MD5 | 4f2fd6cdc64a4519f24ae57f3dc8faf2 |
|
BLAKE2b-256 | 3e61112c0fffb0982334619bdc04c3c58197eda912a5486a800d1d8cf2e8532f |
Hashes for ctimed_rotating_file_handler-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02e503e05f361bae92bfc9812a11e3810bc1c76226cf819c87971f9dff9e34a4 |
|
MD5 | 26816223b84e8ddf3cd8b8d68fbc4eeb |
|
BLAKE2b-256 | 8347240cac7ecd09cb3f29bbaaff2455d1fc7e89abe89a30e3e4850676e05157 |