Attualmente sto correndo in un tipo di problema.Posso disabilitare l'intestazione del registro per il logger rubino?
Come probabilmente sapete, il logger ruby aggiunge un'intestazione di registrazione nella parte superiore di ogni file di registro appena creato.
"# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
sto accedendo file CSV per importarli in un magazzino in seguito, di solito ho appena saltare la prima linea con l'intestazione. Sembra che ci sia un bug nel logger, perché a volte l'intestazione del log appare più di una volta, proprio nel mezzo di un file di log.
Quindi ho deciso di lasciare semplicemente l'intestazione. Con mia sorpresa, non ho trovato alcun argomento che si possa passare alla creazione di un logger. Ho pensato a qualcosa di simile:
Logger.new "info.log", :skip_header => true
Ma non è solo lì. Ho cercato nelle fonti principali rubino e sorprendentemente non c'è davvero nulla che possa impedire il registratore di aggiungere l'intestazione di registro:
def create_logfile(filename)
logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT))
logdev.sync = true
add_log_header(logdev)
logdev
end
def add_log_header(file)
file.write(
"# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
)
end
Qualcuno ha un'idea che cosa potevo fare, per evitare che l'intestazione del registro? Sto usando Ruby 1.8.7 302 con Rails 2.3.5 qui. Semplicemente ignorando i commenti sul lato del magazzino non è possibile perché non ho il controllo del codice lì, e sembra essere rischioso ignorarlo semplicemente, se qualcosa va storto con una linea di registrazione.
Qualcuno conosce un registratore che consente questo? Pensi che sarebbe una buona idea usare e scrivere semplicemente in un file?
Grazie in anticipo, Tommy
Ottimo, grazie! Non ho pensato di "rattoppare le scimmie" nel logger perché è considerato sporco. Ma con il tuo approccio non cambia nulla per le chiamate precedenti e successive. Grande! –