Wie kann ich die Protokollierung von ActiveJob-Argumenten filtern oder entfernen?

8

Ich verwende Rails 'ActiveJob, und einer meiner Jobs nimmt eine rohe E-Mail als Eingabe. Beim Debuggen kann dies zu einer großen Menge an Rauschen in meinem Anwendungsprotokoll führen. Wie kann ich das vermeiden?

%Vor%     
Jeppe Liisberg 17.08.2015, 08:02
quelle

4 Antworten

4

Es scheint, als wäre die einzige Möglichkeit, ActiveJobs interne Protokollierungsmethode :

%Vor%

Platziere es irgendwo in app/initializers/active_job_logger_patch.rb .

    
EugZol 17.08.2015 13:39
quelle
2

Ich habe after_initialize vorher angehakt. Es stellte sich heraus, dass es nur in perform_start method, aber nicht in enqueue funktioniert.
Die Verwendung von on_load Methode zum Hook funktioniert. Ich denke, es ist die Lazyload-Funktion in Rails, die bewirkt, dass die Klasse nach der Überschreibung geladen wird.

%Vor%     
atitan 27.09.2015 10:34
quelle
2

Siehe Ссылка

%Vor%     
Mihai Târnovan 29.04.2016 00:46
quelle
0

Eine Sache, die hier zu beachten ist: In jeder Instanz einer Klasse, die von (Rails 5.1) abgeleitet ist ActiveJob :: Base (oder jede Klasseninstanz, die von einer untergeordneten Klasse aufgerufen wird) ActiveJob :: Base) Die normalen Rails.logger.info('log this') -Befehle werden auf der Rails-Konsole geloggt (vermutlich via STDOUT).

Ich habe den Mechanismus, der dieses Hijacking von Rails.logger verursacht, nicht ganz herausgefunden, aber Sie können zu ActiveJob :: Base.logger wechseln und das Wissen dafür verwenden: ( Ссылка ) um das Verhalten wie gewünscht zu ändern.

So können Sie sich wie gewünscht anmelden:

1) Fügen Sie require "active_job/logging" in Ihre Anwendung ein.rb

2) Fügen Sie in config / development.rb (oder in die von Ihnen gewünschten Umgebungen) folgende Zeile ein:

%Vor%

3) Jede Anmeldung in Unterklassen von ActiveJob, verwenden Sie diese für die Protokollierung:

%Vor%

Wenn jemand auf den Code hinweisen kann, der erklärt, warum sich Rails.logger.info in einer ActiveJob -Klasse anders verhält, wäre das eine gute Lektüre.

    
Dave Collins 11.10.2017 04:15
quelle