2010-12-08 12 views
1

Ich arbeite an einem Logger-Modul, das Text in einer Datei speichert. In dieser Logger-Datei versuche ich, Nachrichten von anderen Modulen im selben Projekt zu empfangen. Ich habe einen Controller, der ein paar Ausgänge hat, die in die Shell geschrieben werden. Ich möchte nicht, dass diese Ausgabe in die Shell geschrieben wird, sondern dass diese Ausgabe in der Lage sein soll, sie an mein Logger-Modul zu senden, und dieses Modul sollte danach die Ausgabe in eine Datei schreiben.Nachricht von anderen Modulen erhalten

Die Frage ist, wie soll ich den Code schreiben, um diese Nachrichten zu erhalten?

Dank

+0

Ist dies eine OTP-Anwendung? Wenn dem so ist, ist D.Nibons Antwort der richtige Weg. –

+0

Ja, es ist eine OTP-App. – user535081

Antwort

0

Auf die gleiche Weise Sie Code schreiben, andere Nachricht zu empfangen; mit einem receive Block.

3

Grundsätzlich ohne weitere detaillierte Informationen würde ich denken, dass Sie eine event handler (gen_event behaviour) erstellen möchten, die ideal für Situationen wie Protokollierung, Event-Handling ist (daher der Name :) und so.

+0

Wenn die Umgebung nicht sehr beansprucht wird (der Logger wird nicht gehämmert), dann kann dies eine Möglichkeit sein und wird ausreichen. Wenn es sich um eine stark beanspruchte Umgebung handelt, wird sie nicht skaliert. Sie sollten daher eine ETS-Tabelle als Puffer verwenden und den Inhalt regelmäßig in eine Datei ablegen. Sie riskieren einige Protokollnachrichten zu verlieren, wenn Sie abstürzen, also wenn das nicht akzeptabel ist, dann können Sie das lösen, indem Sie eine Priorität haben (die gerade schreibt) und eine als Puffer. –

+0

Danke D.Nibon, ich lese das Dokument durch. und es hat mir geholfen. – user535081

Verwandte Themen