Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

592
Views
¿Cómo guardo los registros de la aplicación del matraz por separado por día en lugar de un archivo gigante?

Tengo una aplicación de matraz de Python ejecutándose en EC2. Para permitir que la interfaz de la interfaz de usuario sea funcional, ejecuto esto en ec2 después de iniciar sesión como el usuario correcto:

 uwsgi --socket 0.0.0.0:8000 --protocol=http -w wsgi:application -z 120 --http-timeout 120 --enable-threads -H /home/test/env --daemonize /home/test/test.log

y la interfaz de usuario se vuelve operativa. Cuando hago clic en el botón de descarga, se realizan ciertos cálculos antes de que el csv esté listo para descargar. No tengo un archivo uwsgi.ini ni ningún tipo de nginx.

Después de un punto, test.log se convierte en un archivo muy grande; ¿Cómo escribo archivos de registro para que el registro de cada día se escriba en un archivo separado? o ¿cuál es la mejor manera de evitar que se genere un archivo de registro grande y, en cambio, tener algo que sea más manejable?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede implementar la rotación de registros utilizando los controladores de registro de Python:

 from flask import Flask import logging from logging.handlers import RotatingFileHandler app = Flask(__name__) if __name__ == '__main__': handler = RotatingFileHandler('test.log', maxBytes=12000, backupCount=5) handler.setLevel(logging.INFO) app.logger.addHandler(handler) app.run()

https://docs.python.org/3/library/logging.handlers.html#rotatingfilehandler

Esto transferiría los registros cuando se haya alcanzado el tamaño maxBytes . El archivo de registro principal seguirá siendo test.log pero el registro completo se renombrará a test.log.1 , test.log.2 y así sucesivamente.

over 4 years ago · Santiago Trujillo Report

0

Utiliza la clase TimedRotatingFileHandler .

El objeto TimedRotatingFileHandler creará un archivo de registro para cada día, pero deberá manejarlo dentro del código de la aplicación del servidor.

 import os import logging from logging.handlers import TimedRotatingFileHandler from datetime import datetime logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) formatter = logging.Formatter('[%(asctime)s] %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S') handler = TimedRotatingFileHandler(os.path.join('./', 'custom_log.log'), when='midnight', backupCount=7) handler.setLevel(logging.INFO) handler.setFormatter(formatter) logger.addHandler(handler) logger.info("Info") logger.warning("Warning") logger.error("Error")
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!