Logging module: Where are the logs located?

I was reviewing an answer about all logging, it was really helpful. Logging seems to always point back to here.

So it seems I can keep track of things by adding print statements. That’s a fine solution.

However, I built part of my app before discovering Streamlit and when I deploy, I still have code that uses logging.

My question: Where do those logs go? Can I grab them? Are they secure? Thank you!

Welcome to the forum, @johncalculated! Where the logs go depends on how you have set up your logging – you can set it to either write to a file, or write to the console, just like print. If you want those logs to show up in the streamlit log, you should be able to set the logger level value in a .streamlit/config.toml file Configuration - Streamlit Docs

2 Likes

Hey thank you very much! This was super helpful, I’ll dig into it.

@blackary thanks again. Just to be clear, the logs aren’t written anywhere, is that right? The only logging that’s done is to the console, not to a file.

Thank you! John

Correct. You could change your config to also/instead write them to a file, but if you’re hosting your app on Community Cloud, those log files would not necessarily exist long-term.

1 Like

You can also get a logging.Logger in your code from: https://github.com/streamlit/streamlit/blob/1.28.1/lib/streamlit/logger.py#L103

import logging
import streamlit

# If you're curious of all the loggers
print(streamlit.logger._loggers)  

streamlit_root_logger = logging.getLogger(streamlit.__name__)

@blackary Is there an integration available to ship these logs to a log destination like cloudwatch or ELK?

I haven’t done that in a long time, but I used to use GitHub - kislyuk/watchtower: Python CloudWatch Logging: Log Analytics and Application Intelligence to send logs to cloudwatch, and it worked well

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.