Hi, I'm currently using this to log my python process

logging.basicConfig(filename='filename.log', level=logging.DEBUG)

logger = logging.getLogger()

sys.stderr.write = logger.error

sys.stdout.write = logger.info

And then using print(f'{datetime.now()} log message') where I want to log.

It's working OK, buy I would like to live it to ic, but can't find any info on how to send the ic output to the logger.

Thanks for any help.

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 2 years ago (1 child)

Never used ic before, but there is an example in the README on GitHub.

>>> import logging
>>> from icecream import ic
>>>
>>> def warn(s):
>>>     logging.warning(s)
>>>
>>> ic.configureOutput(outputFunction=warn)
>>> ic('eep')
WARNING:root:ic| 'eep': 'eep'
  • source
  • hideshow 2 child comments
  • [–] [S] 1 point 2 years ago

    Thanks, tried the next:

    logging.basicConfig(filename='filename.log', level=logging.DEBUG)
    
    logger = logging.getLogger()
    
    def warn(s):
        logging.warn(s)
    
    ic.configureOutput(outputFunction=warn)
    

    But it didn't create the .log file and the ic output was printed on the screen instead of the file (that was never created anyway)

  • source
  • parent