Hallo, ich habe hier ein kleines Problem mit Log4j (mal wieder)
Ich arbeite an einem zentralen Logging System. Das versuche ich mit Log4j mit einer Client/Server Applikation mit dem SocketAppender zu realisieren.
Es ist für mich zwangsweise nötig, eigene Objekte vom Client zum Server zu übertragen.
Das Problem ist, dass die eigenen LogObjects nach der Übergabe vom Client zum Server nicht gecastet werden können. Hier mal ein Code-Ausschnitt:
Client:
Server:
.getMessage sollte eigentlich in der Lage sein, eigens erstellte Objekte zu überliefern, zumindest sagen das JavaDoc und auch ein Beispiel auf dieser Website:
Re: Parse the message part into multiple columns in the sql-database
Jedoch wirft er beim casten sofort eine Exception:
java.lang.ClassCastException: java.lang.String cannot be cast to com.socketLogger.objects.LogObject
Klar, .getMessage() holt also einen String, aber nach dem Beispiel sollte es doch funktionieren ein eigenes Objekt zu übersenden (!)
Wisst ihr zufällig ob man da ggf. an dem Objekt etwas ändern muss oder an was das liegen kann?
Bin etwas ratlos atm
MfG
Ich arbeite an einem zentralen Logging System. Das versuche ich mit Log4j mit einer Client/Server Applikation mit dem SocketAppender zu realisieren.
Es ist für mich zwangsweise nötig, eigene Objekte vom Client zum Server zu übertragen.
Das Problem ist, dass die eigenen LogObjects nach der Übergabe vom Client zum Server nicht gecastet werden können. Hier mal ein Code-Ausschnitt:
Client:
Java:
public void run()
{
PropertyConfigurator.configureAndWatch( "log.properties", 60*1000 );
logger.info(new LogObject());
}
Java:
...
event=(LoggingEvent) inStream.readObject();
System.out.println("Trying to cast LoggingEvent.getMessage()-Object to LogObject");
LogObject e=(LogObject)event.getMessage();
...
.getMessage sollte eigentlich in der Lage sein, eigens erstellte Objekte zu überliefern, zumindest sagen das JavaDoc und auch ein Beispiel auf dieser Website:
Re: Parse the message part into multiple columns in the sql-database
Jedoch wirft er beim casten sofort eine Exception:
java.lang.ClassCastException: java.lang.String cannot be cast to com.socketLogger.objects.LogObject
Klar, .getMessage() holt also einen String, aber nach dem Beispiel sollte es doch funktionieren ein eigenes Objekt zu übersenden (!)
Wisst ihr zufällig ob man da ggf. an dem Objekt etwas ändern muss oder an was das liegen kann?
Bin etwas ratlos atm
MfG
Zuletzt bearbeitet: