'Flask Logging in ElasticBeanstalk

I am trying to set up Logging for my Flask app which is deployed in ElasticBeanstalk.

I have a basic logging in place that prints stuff in my console.

But on deploying in Beanstalk, I am not able to see any of the application logs.

Is there any specific config that needs to be setup in order to achieve this?

Just sharing a sample code.

user.py

import logging 

class User(Resource): 

    def details(self):
      user_info = "Hello"
      logging.info(user_info)


Solution 1:[1]

You can add a config file to your .ebextensions folder that adds your application's logs to the logs that EB downloads automatically.

Assuming that your application logs to a folder called logs in the Flask app root, you would make a file called .ebextensions/logging.config that looks like this:

files:
  "/opt/elasticbeanstalk/tasks/taillogs.d/your_app_name_logs.conf" :
    mode: "000644"
    owner: root
    group: root
    content: |
      /var/app/current/logs/*.log

(Which is a slight variation on the official documents here: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html)

Then, after you deploy, you should be able to use the GUI to pull down logs.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1