file (log) που να διατηρεί το μέγεθος του

George Notaras gnot at g-loaded.eu
Sat Nov 29 04:50:05 EET 2008


Thanasis wrote:
> Θέλω να δημιουργήσω το εξής:
> Σε ένα screen session, να τρέχω ένα ping το οποίο να γράφει το output σε
> ένα αρχείο, και καθώς γράφει, όταν το αρχείο φτάσει σε μέγεθος άς πούμε
> 3ΜΒ, να αδειάζει τις παλαιότερες εγγραφές για να γράφει τις νέες.
> Πώς μπορώ να το κάνω;
> 

Συμπληρωματικά σε όλα αυτά που αναφέρθηκαν, το logging module της python
περιλαμβάνει έναν handler που υποστηρίζει rotation.

Το παρακάτω είναι βασισμένο στο παράδειγμα:
http://docs.python.org/library/logging.html#simple-examples

====testrotatinglogger.py======================

#! /usr/bin/env python

import sys
import logging
import logging.handlers

LOG_FILENAME = 'z_logging_rotatingfile_example.out'

my_logger = logging.getLogger('MyLogger')

my_logger.setLevel(logging.DEBUG)

my_handler = logging.handlers.RotatingFileHandler(
        LOG_FILENAME, maxBytes=20, backupCount=5)

my_formatter = logging.Formatter(
        '%(asctime)s %(message)s', '%Y-%m-%d %H:%M:%S')

my_handler.setFormatter(my_formatter)
					
my_logger.addHandler(my_handler)

for line in sys.stdin:
  my_logger.debug(line)

=================================

Πχ:
$ echo -e "This is line 1\nThis is line 2\nThis is line 3\nThis is line
4" | ./rotationallogger.py





More information about the Linux-greek-users mailing list