[issue43344] RotatingFileHandler breaks file type associations

2021-03-02 Thread Kevin Hollingshead


Kevin Hollingshead  added the comment:

Thanks Vinay, I was able to do this with:

def namer(name):
return name.replace(".log", "") + ".log"

Then when initializing the logger:

handler.namer = namer

My full initializer script:

import os
import logging
from logging.handlers import TimedRotatingFileHandler
from config import constants

def namer(name):
return name.replace(".log", "") + ".log"

def init(baseFilename):
logPath = constants.LOGGING_DIR
envSuffix = '-prod' if constants.ENV == 'prod' else '-dev'
logFilename = os.path.join(logPath, baseFilename + envSuffix + '.log')
print(f"Logging to {logFilename}")

handler = TimedRotatingFileHandler(logFilename,
when = "midnight",
backupCount = 30,
encoding = 'utf8')
handler.setLevel(logging.DEBUG)
handler.suffix = "%Y%m%d"
handler.namer = namer

formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s
[%(module)s:%(lineno)d]')
handler.setFormatter(formatter)

logging.basicConfig(
handlers = [handler],
format = '%(asctime)s %(levelname)s %(message)s
[%(module)s:%(lineno)d]',
level = logging.DEBUG,
datefmt = '%Y-%m-%d %H:%M:%S')

if __name__ == '__main__':
init('testing')
logging.error("ohai")
logging.debug("ohai debug")
logging.getLogger().handlers[0].doRollover()
logging.error("ohai next day")
logging.debug("ohai debug next day")

On Mon, Mar 1, 2021 at 8:13 AM Vinay Sajip  wrote:

>
> Vinay Sajip  added the comment:
>
> As per the documentation at
>
>
> https://docs.python.org/3/library/logging.handlers.html#logging.handlers.BaseRotatingHandler.namer
>
> You can set the handler's "namer" attribute to a callable that returns a
> computed name for the rotated file - this can be computed as per your
> requirements. The cookbook also has an entry about this:
>
>
> https://docs.python.org/3/howto/logging-cookbook.html#using-a-rotator-and-namer-to-customize-log-rotation-processing
>
> --
>
> ___
> Python tracker 
> <https://bugs.python.org/issue43344>
> ___
>

--

___
Python tracker 
<https://bugs.python.org/issue43344>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue43344] RotatingFileHandler breaks file type associations

2021-03-02 Thread Kevin Hollingshead


Kevin Hollingshead  added the comment:

Sure. Thanks for your help.

On Tue, Mar 2, 2021, 1:08 PM Vinay Sajip  wrote:

>
> Vinay Sajip  added the comment:
>
> I'll add to the cookbook recipe with this real-world example, when I get a
> chance.
>
> --
>
> ___
> Python tracker 
> <https://bugs.python.org/issue43344>
> ___
>

--

___
Python tracker 
<https://bugs.python.org/issue43344>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue43344] RotatingFileHandler breaks file type associations

2021-02-27 Thread Kevin Hollingshead


New submission from Kevin Hollingshead :

The filenames generated by logging.RotatingFileHandler breaks the ability to 
associate a program (e.g. notepad++, sublime text, etc.) with the log files 
using Windows or OSX file associations because the extension is overridden by 
the added suffix. For example, if I specify the filename as "test.log" for a 
TimeBasedRotatingFileHandler with a suffix of "%Y%m%d", rolled over files are 
named test.log.MMDD. There is no way to associate a program with this type 
of file extension. A good non-breaking fix would be to add a parameter 
"extension" to RotatingFileHandler, and if specified would be applied to all 
filenames. Thus if I specify filename="test" and "extension="log" for my 
handler it would give "test.log" for the initial file and "test.MMDD.log" 
for rollover files.

--
components: Extension Modules
files: logger_bug.py
messages: 387793
nosy: kh14821
priority: normal
severity: normal
status: open
title: RotatingFileHandler breaks file type associations
type: behavior
Added file: https://bugs.python.org/file49840/logger_bug.py

___
Python tracker 
<https://bugs.python.org/issue43344>
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com