# Axis2] Service-Klasse mit Logging austatten



## Moritz123 (18. Mai 2009)

Hallo allerseits,

ich beschäftige mich gerade mit Axis2 und möchte gerne meine Service-Klasse mit logging ausstatten, damit ich ein weiterers Debugging-Werkzeug zur Hand habe.
Da Axis2 ja schon mit log4j hantiert, dachte ich mir, ich nehme einfach das. Da ich aber keine Ahnung habe, wie ich entsprechende Aufrufe in meiner Serviceklasse machen muss, bin ich auch eure Hilfe angewiesen: Wie kann ich log4J in mein POJO integrieren, so dass dort bei einer Service-Invocation entsprechende Logeinträge gemacht werden?

Vielen Dank für Eure Unterstützung!


PS: Wo ich gerade dabei bin: gibt es eine Möglichkeit, wie ich die IP-Adresse des abfragenden Clients abfragen kann?


----------



## takidoso (18. Mai 2009)

Also ich würde Log4J vermutlich genauso verwenden, wie ich es immer tuh. 
Zumal Du sagst das es ein POJO ist.

Alles was Du tun musst vorweg ist natürlich sicherstellen, dass dei Log4J Bibliothek bei Dir eingebunden ist.
im Code sieht dass dann weiter mit der Definition der Loggervariable. Sie sollte Statisch sein und von der Fabrik instanziiert werden.

```
public class  MyClass
{
   static Logger logger    = Logger.getLogger(MyClass.class);

...
   public void foo()
   {
      logger.info("Lalala'");
   }
}
```

schau Dir dann noch auf einer der Log4J Seiten an wie man den Logger konfiguiert (ich würde anstelle von Properties XML-Konfiguration empfehlen!)

und fertisch is


----------



## Moritz123 (22. Mai 2009)

Hallo und vielen Dank für die Antwort! Ich habe das jetzt wie von dir beschrieben in meine Klassen eingebunden und habe lokal auch schöne Log-Meldungen in eine Datei geschrieben bekommen.
Nun habe ich das ganze mit dem Axis2-Service-Archiver-Plugin zu einem Service-Archiv zusammengepackt und deployed. Wo finde ich nun die Logausgaben bzw muss ich noch irgendwo etwas einstellen?

Vielen Dank und ein schönes Wochenende!


----------



## takidoso (25. Mai 2009)

Du musst den Logger vermutlich noch konfigurieren.
Dazu suche mal in google nach den einschlägigen Seiten, die das erläutern
z.B. mit Stichworten wie _log4j configuration_ oder ähnliches.
Ich empfehle dazu die XML-Variante, die ist aus meiner Erfahrung her zuverlässiger, bzw irgendwie leichter zu verstehen.


----------



## Moritz123 (25. Mai 2009)

Hallo!

das logging funktoniert lokal ja einwandfrei - daher gehe ich mal davon aus, dass es korrekt konfiguriert ist. Die Frage ist, wie muss ich den Service für Axis2 konfigurieren, so dass Log-Meldungen erzeugt werden? Ich finde dazu im Netz nichts passendes, da ich auch nicht genau weiß, nach was ich eigentlich suchen soll.

Vielen Dank für weitere Erleuchtung!


----------



## takidoso (25. Mai 2009)

Ich kenne mich mit Axis2 absolut nicht aus, aber ich kann mir vorstellen, dass der Web-Server unter dem Du Axis2 lauf lässt bezogen auf Logging vielleicht was zu tun hat.
Meist werden über Servlets Soap-Implementationen bewerkstelligt, daher meine Annahme.


----------



## Moritz123 (25. Mai 2009)

Hallo und nochmal vielen Dank für deine Antwort. Axis2 läuft in einem Tomcat. Daher war auch meine Vermutung, dass Logs eigentlich nach /WEB-INF/classses/axis2.log geschrieben werden, da diese Datei bereits exisitiert und auch beschrieben wird.
Leider erscheinenen dort keine Logausgaben...


----------



## takidoso (25. Mai 2009)

vielleicht musst Du Tomcat mit der Konfiguration beglücken, sofern er eigetnlcih auch mit dem log4J läuft ()
vielleicht hilft ja der folgende Link Dir weiter
probier mal hier


----------



## Moritz123 (27. Mai 2009)

Hallo nochmal.

Nach einigen Versuchen habe ich es leider immer noch nicht hinbekommen, meinem Service Logausgaben zu entlocken. Allerdings erscheinen plötzlich im WEB-INF/classes-Verzeichnis, im axis2-Verzeichnis und im WEB-INF/services-Verzeichnis logfiles mit log-Ausgaben von axis selbst. Dieser wiederrum werden aber nur sporadisch geschrieben.
Ich verstehe das einfach nicht, warum das nicht funktioniert.


----------

