Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Logs displayed twice.

Ouverte
#113 8 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
flask, python
Domaine
backend

Piste de recherche

Start with the Server.serve entry point and the logging configuration used by python-livereload when serving the Flask application. Reproduce the example and compare the two output formats; done means each server event is emitted only once while live reload and file watching still work.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

I use python-livereload with flask.

@manager.command
def live():
    """
    Starts a development server with live reload enabled.
    """
    server = Server(app.wsgi_app)
    server.watch(module_path + '/static/**/*.*')
    server.watch(module_path + '/templates/*.*')
    server.serve(port=5000)

Unfortunately logs are displayed twice.

[I 150616 14:31:09 server:271] Serving on http://127.0.0.1:5000
Tue, 16 Jun 2015 14:31:09 | INFO     | Serving on http://127.0.0.1:5000
[I 150616 14:31:09 handlers:58] Start watching changes
Tue, 16 Jun 2015 14:31:09 | INFO     | Start watching changes
[I 150616 14:31:09 handlers:60] Start detecting changes
Tue, 16 Jun 2015 14:31:09 | INFO     | Start detecting changes

I can't find any parameters to control logging. Any ideas how I can deal with this ?

Thank you. :)

My logging tree before the serve method is called:

<--""
   Level INFO
   Handler Stream <open file '<stderr>', mode 'w' at 0x7f3c675ce1e0>
     Level DEBUG
     Formatter fmt='%(asctime)s | %(levelname)-8s | %(message)s' datefmt='%a, %d %b %Y %H:%M:%S'
   Handler RotatingFile '/home/tim/Workspace/thedotabot/memories/server_logs.txt' maxBytes=10485760 backupCount=0
     Level DEBUG
     Formatter fmt='%(asctime)s | %(levelname)-8s | %(message)s' datefmt='%a, %d %b %Y %H:%M:%S'
   |
   o<--"alembic"
   |   Level NOTSET so inherits level INFO
   |   Handler <logging.NullHandler object at 0x7f3c62aa6690>
   |   |
   |   o<--[alembic.autogenerate]
   |   |   |
   |   |   o<--"alembic.autogenerate.api"
   |   |   |   Level NOTSET so inherits level INFO
   |   |   |
   |   |   o<--"alembic.autogenerate.compare"
   |   |   |   Level NOTSET so inherits level INFO
   |   |   |
   |   |   o<--"alembic.autogenerate.render"
   |   |       Level NOTSET so inherits level INFO
   |   |
   |   o<--[alembic.ddl]
   |   |   |
   |   |   o<--"alembic.ddl.postgresql"
   |   |       Level NOTSET so inherits level INFO
   |   |
   |   o<--"alembic.migration"
   |   |   Level NOTSET so inherits level INFO
   |   |
   |   o<--"alembic.util"
   |       Level NOTSET so inherits level INFO
   |
   o<--[concurrent]
   |   |
   |   o<--"concurrent.futures"
   |       Level NOTSET so inherits level INFO
   |
   o<--[flask-admin]
   |   |
   |   o<--"flask-admin.sqla"
   |       Level NOTSET so inherits level INFO
   |
   o<--"livereload"
   |   Level NOTSET so inherits level INFO
   |
   o<--[oauth2client]
   |   |
   |   o<--"oauth2client.client"
   |   |   Level NOTSET so inherits level INFO
   |   |
   |   o<--"oauth2client.crypt"
   |   |   Level NOTSET so inherits level INFO
   |   |
   |   o<--"oauth2client.util"
   |       Level NOTSET so inherits level INFO
   |
   o<--"requests"
   |   Level NOTSET so inherits level INFO
   |   Handler <logging.NullHandler object at 0x7f3c611c7910>
   |   |
   |   o<--[requests.packages]
   |       |
   |       o<--"requests.packages.urllib3"
   |           Level NOTSET so inherits level INFO
   |           Handler <logging.NullHandler object at 0x7f3c611c7890>
   |           |
   |           o<--"requests.packages.urllib3.connectionpool"
   |           |   Level NOTSET so inherits level INFO
   |           |
   |           o<--"requests.packages.urllib3.poolmanager"
   |           |   Level NOTSET so inherits level INFO
   |           |
   |           o<--[requests.packages.urllib3.util]
   |               |
   |               o<--"requests.packages.urllib3.util.retry"
   |                   Level NOTSET so inherits level INFO
   |
   o<--"sqlalchemy"
   |   Level WARNING
   |   |
   |   o<--[sqlalchemy.dialects]
   |   |   |
   |   |   o<--"sqlalchemy.dialects.postgresql"
   |   |       Level NOTSET so inherits level WARNING
   |   |
   |   o<--[sqlalchemy.orm]
   |       |
   |       o<--[sqlalchemy.orm.dynamic]
   |       |   |
   |       |   o<--"sqlalchemy.orm.dynamic.DynaLoader"
   |       |       Level NOTSET so inherits level WARNING
   |       |
   |       o<--[sqlalchemy.orm.mapper]
   |       |   |
   |       |   o<--"sqlalchemy.orm.mapper.Mapper"
   |       |       Level NOTSET so inherits level WARNING
   |       |
   |       o<--"sqlalchemy.orm.path_registry"
   |       |   Level NOTSET so inherits level WARNING
   |       |
   |       o<--[sqlalchemy.orm.properties]
   |       |   |
   |       |   o<--"sqlalchemy.orm.properties.ColumnProperty"
   |       |       Level NOTSET so inherits level WARNING
   |       |
   |       o<--[sqlalchemy.orm.query]
   |       |   |
   |       |   o<--"sqlalchemy.orm.query.Query"
   |       |       Level NOTSET so inherits level WARNING
   |       |
   |       o<--[sqlalchemy.orm.relationships]
   |       |   |
   |       |   o<--"sqlalchemy.orm.relationships.RelationshipProperty"
   |       |       Level NOTSET so inherits level WARNING
   |       |
   |       o<--[sqlalchemy.orm.strategies]
   |           |
   |           o<--"sqlalchemy.orm.strategies.ColumnLoader"
   |           |   Level NOTSET so inherits level WARNING
   |           |
   |           o<--"sqlalchemy.orm.strategies.DeferredColumnLoader"
   |           |   Level NOTSET so inherits level WARNING
   |           |
   |           o<--"sqlalchemy.orm.strategies.JoinedLoader"
   |           |   Level NOTSET so inherits level WARNING
   |           |
   |           o<--"sqlalchemy.orm.strategies.LazyLoader"
   |           |   Level NOTSET so inherits level WARNING
   |           |
   |           o<--"sqlalchemy.orm.strategies.NoLoader"
   |           |   Level NOTSET so inherits level WARNING
   |           |
   |           o<--"sqlalchemy.orm.strategies.SubqueryLoader"
   |               Level NOTSET so inherits level WARNING
   |
   o<--"stripe"
   |   Level NOTSET so inherits level INFO
   |
   o<--[tornado]
       |
       o<--"tornado.access"
       |   Level NOTSET so inherits level INFO
       |
       o<--"tornado.application"
       |   Level NOTSET so inherits level INFO
       |
       o<--"tornado.general"
           Level NOTSET so inherits level INFO
Langage dominant
Python
Étoiles
1.1k
Forks
149
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de lepture/python-livereload

Toutes les issues de lepture/python-livereload

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.