0

Ich möchte alle Protokolle von Docker (von stdout) auf meiner EC2-Instanz erhalten. So Politik und IAM Rollen nach der Konfiguration, in meinem Docker-compose.yml füge ich nächste Konfiguration für die Protokollierung:AWS Cloud Watch unlesbare Symbole

django: 
... 
logging: 
    driver: "awslogs" 
    options: 
    awslogs-region: "eu-central-1" 
    awslogs-group: "my-group-auto" 
    awslogs-stream: "my-stream" 
    awslogs-create-group: "true" 

Django config:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'root': { 
    'level': 'ERROR', 
    'handlers': ['console'], 
    }, 
    'formatters': { 
    'message-only': { 
     'format': '%(message)s' 
    } 
    }, 
    'handlers': { 
    'console': { 
     'level': 'DEBUG', 
     'class': 'logging.StreamHandler', 
     'formatter': 'message-only' 
    } 
    }, 
    'loggers': { 
    'celery': { 
     'level': 'DEBUG', 
     'handlers': ['console'], 
     'propagate': False, 
    } 
    } 
} 

Dann laufe ich die Python-Shell und versuchen, einige schicken Protokolle:

In [1]: import logging 
In [2]: logger = logging.getLogger('celery') 
In [3]: logger.info('info2') 
In [4]: logger.info('info22') 

Aber auf AWS Cloud-Uhr bekam ich Protokolle mit nicht lesbaren Symbolen vor ursprünglicher Protokollmeldung:

16:34:27 [J[?7h[0m[?12l[?25h[?2004linfo2 
16:35:23 [J[?7h[0m[?12l[?25h[?2004linfo22 

Sieht aus wie ein unlesbares Datum vor den Nachrichten. Wie kann ich es entfernen?

+1

Können Sie Python anstelle von Ipython versuchen und sehen, ob das Ergebnis gleich ist? Dies sind Farbkodierungen, die Ihre Protokolle erreichen –

+0

Ihre Lösung funktioniert gut für mich, danke! – Lariat

Antwort

1

Sie müssen Python dafür versuchen. IPython verbessert die Protokolle möglicherweise mit Farben, und die angezeigten Zeichen sind Farbcodierungen.

Führen Sie Ihren Code in Python und es sollte funktionieren.

Verwandte Themen