Frage

Ich bin ein Log-Server in C ++ Implementierung; dass akzeptiert Nachrichten von einem Java-Programm einloggen (über log4j Buchse appender). Wie lese ich diese Java-Logging-Objekte in C ++?

War es hilfreich?

Lösung

Sie sollten die log4j Appender konfigurieren XML-Format zum Senden von Nachrichten. Dann ist es nur eine Frage der XML in C ++ zu lesen.

Andere Tipps

Serialized Java-Objekte sind ein Byte-Stream, die Meta-Informationen aus dem Java-Runtime muß die Java-Objekte in der Lage sein zu rekonstruieren. Ohne diese Meta-Informationen verfügbar im System müssen Sie diese Informationen selbst hinzufügen, die anfällig mühsam und fehler ist. Ich schließe ich die Idee von XML Senden statt - das, was die XML-Serialisierung ist erfunden wurde:)

Eine weitere sehr schnelle Art und Weise der sprachunabhängig Serialisierung protobuf . Proto-Dateien (Meta-Dateien, die Ihre Datenstrukturen beschreiben) werden mit Protoc zusammengestellt, die IO-Code für verschiedene Zielsprachen schreibt.

Ich benutze es in meiner app und haben einige Benchmarking der könnten Sie einen Anhaltspunkt, ob es Ihren Zweck dient. Der einzige Nachteil ich mir bewusst bin, ist, dass protobuf Referenzen behandelt nicht überhaupt. Wenn einer Ihrer Objekte enthält das gleiche Objekt zweimal wird es zweimal statt nur einmal an die vorherige Instanz mit einer Referenz geschrieben werden (was der Fall mit Java Serialisierung ist).

Ihre ursprüngliche Frage angeht, so bin ich mit Thorbjørn, dass das Lesen und Schreiben von serialisierten Java-Objekten werden zu hart und fehleranfällig sein.

Wenn Sie die protobuf Art und Weise prüfen, gehen, können Sie diese Protokolliervorgangs protobuf als Starter-Datei.

json ist der beste Weg für diese Art von Problemen zu gehen.

log4cxx ist ein Log4j Port C ++, können Sie vielleicht ein paar Ideen aus, dass aufzulesen oder sogar direkt benutzen?

JSON! JSON! JSON! JSON!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top