Logs displayed twice.

Offen
#113 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
flask, python
Bereich
backend

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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
Vorherrschende Sprache
Python
Sterne
1.1k
Forks
148
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus lepture/python-livereload

Alle Issues in lepture/python-livereload

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.