# log4j mit konfigurationsfile aus jsp aufrufen



## schlumsch (8. Nov 2010)

Hallo Gemeinde,

ich ein Problem mit log4j, eventuell kann mir da jemand weiter helfen. 


Ich habe eine jsp Anwendung. In meinem Bean gebe ich eine Konfigurationsdatei für log4j an und erhalte keinen Fehler beim Start der Anwendung


```
private  final String loggingPropertyFile = "Logging.properties";
...
public static Logger logger = Logger.getLogger(meineKlasse.class);
...
	public MeineKlasse()  {
		super();
		// logger:
		PropertyConfigurator.configureAndWatch(loggingPropertyFile);
		logger.info("huhu");
```

Nun versuche ich das gleiche in meiner jsp, allerdings ohne Erfolg. Wenn ich in der jsp versuche
mit 		
PropertyConfigurator.configureAndWatch(loggingPropertyFile);
meine KonfigDatei zu laden erhalte ich überhaupt keine logs. Dabei sei erwähnt das ich definitiv in meinem Bean die Methoden mit loggings über die jsp aufrufe. 

Wenn ich nun den code aus meiner oben deklarierten Konfigurationsdatei nehme und in das standardfile "log4j.properties" lege und in meiner jsp ein

```
org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger("Application");
	logger.info("info huhu aus der jsp");
```
mache erhalte ich wunderbar meine logs, aus Bean und jsp. Die Angaben aus meinem Konfigfile sind
insoweit ok, da er mir auch das dort eingestellte logfile erstellt. Was mache ich da falsch? Wie kann ich auch in der jsp die oben angeführte logging.properties als Konfig angeben?


...ein kleines Update... Habe gerade versucht den in meinem Bean deklarierten
Logger auch aus der jsp zu nutzen, quasi in der jsp:

```
org.apache.log4j.Logger logger =meineKlasse.getLogger();
```
Ebenfalls ohne Erfolg, sobald ich kein File namens log4j.properties habe passiert garnix in Sachen log...



Danke im Voraus, Gruß


----------



## maki (8. Nov 2010)

In einer JSP seite sollte auhc nicht geloggt werden, genausowenig sollte in einer JSP Datei Javacode stehen.


----------



## schlumsch (9. Nov 2010)

Wieso sollte in einer jsp nicht geloggt werden?


----------



## maki (9. Nov 2010)

schlumsch hat gesagt.:


> Wieso sollte in einer jsp nicht geloggt werden?


Weil i einer JSP Seite Javacode nichts zu suchen hat, und was sollte man schon in einer reinen View loggen wollen?
Loggen kann man im Controller.


----------



## schlumsch (9. Nov 2010)

Hmm, naja also ich sehe zwar ein das javacode in einer jsp nicht wirklich schön ist. Aber wenn ich Methoden aufrufen will, Rückgabeparameter teste und dementsprechend die Anzeigen auf der jsp steuere ... wie soll ich das ohne javacode in der jsp tun? genau das sind auch die Dinge die ich gerne loggen möchte, zB meine Rückgaben.

thx


----------



## maki (9. Nov 2010)

Sowas macht man doch (nicht mehr) in JSPs 

Suche mal nach MVC bzw. Model 2 im Zusammenhang mit JSPs, da wirst du dann rausfinden, das JSPs nur für die Darstellung verantwortlich sind, sonst nix.
Die Daten besorgt der Controller (Servlet/Javaklasse), hängt sie in den Request und leitet das alles weiter an die JSP, dann brauchst du keinen Javacode mehr in JSPs, Taglibs wie die JSTL reichen vollkommen aus.


----------



## mvitz (9. Nov 2010)

Das alles sollte man im Controller machen (dort kannst du dann auch loggen) und der JSP als Parameter übergeben. Die JSP sollte dann die übergebenen Dinge nur noch anzeigen und dazu maximal kleinere if/else und Schleifen verwenden.


----------



## schlumsch (10. Nov 2010)

Ja das ist im Endeffekt ja schon das was ich derzeit tue. Sicher benötige ich nicht dringend ein logging in den jsps, die logs kann ich natürlich auch in den von mir aufgerufenen Methoden im servlet/ bean ausgeben. Soweit ok, thx.


----------

