How to create/use session specific loggers?


I’m looking for a simple way to create logs specific to each user session.

I tried with python’s logging module:

Code snippet:

ss = st.session_state
if 'logger' not in ss:  
    # Setting up logger
    ss.logger = logging.getLogger(__name__)
    ss.log_stream = StringIO()
    stream_handler = logging.StreamHandler(ss.log_stream)
#somewhere in the code:'some info')

The above works great. The problem is that it collects logs from all users who are using the app concurrently.

Hey @TheDigitilizer,

Thanks for sharing this question! Sorry for the super delayed reponse.

Just wanted to add that if this app is deployed on Streamlit Community Cloud and is a private app, you could use st.experimental_user to associate the logs for a specific user with the email address they’ve used to log into Community Cloud. The docs on this feature live here.

I just want to fix something about your code.
You should not assign session_state to a variable, it can lead to errors.

Thank you, as per the following discussion:

I am now using:
from streamlit import session_state as ss