ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
2986
2986
EMPFEHLEN
-
09.02.09 15:21 #1
- Registriert seit
- Feb 2005
- Ort
- 127.0.0.1
- Beiträge
- 189
Guten Tag,
ich möchte gerne eine zweite log4j.xml definieren und muss dazu den Pfad neu angeben und habe mal folgendes probiert:
Das Ganze soll dann in einem Applet laufen und das Applet sucht die XML jetzt in C:\Programme\Mozilla Firefox\de\hes\log4j\applets\log4j.xmlCode :1 2
URL path2Conf = this.getClass().getClassLoader().getResource("de/hes/log4j/applets/log4j.xml"); DOMConfigurator.configure(path2Conf);
Wie kann ich die Datei aus der jar laden?
Wisst ihr da Rat?
Warum nicht alles in einer XML?
Weil Konfigurationen, die bei dem einen benutzt werden, in dem anderen Programm nicht zu sehen sein sollen, wenn jemand die Jar entpackt und reinschaut.
Gruß
Gerrit
-
Kriegst du denn so wies da steht eine URL zurück?
-
10.02.09 07:15 #3
- Registriert seit
- Feb 2005
- Ort
- 127.0.0.1
- Beiträge
- 189
-
Könnte ja auch null sein das Objekt. Das meine ich. Vielleicht kann log4j aber nicht mir URLs innerhalb eines JARs umgehen. Schau doch mal ob man auch mit nem InputStream konfigurieren kann.
-
11.02.09 11:57 #5
- Registriert seit
- Feb 2005
- Ort
- 127.0.0.1
- Beiträge
- 189
Hallo nochmal

Also ich komme einfach nicht weiter. Habe es jetzt auf die verschiedensten Varianten probiert. Aber das Einlesen einer Resource will einfach nicht klappen.
Versuche es mit folgenden Code:
Und bekomme in der Javakonsole, wenn ich die Webseite mit dem Applet aufrufe folgende Meldung:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
private Element getElement4Log4j() { try { File f = new File (this.getClass().getClassLoader().getResource("de/xyz/log4j/applets/log4j.xml").getFile()); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse( f ); // ---- Get list of nodes to given element tag name ---- NodeList ndList = document.getElementsByTagName( "log4j:configuration" ); System.out.println("ndList length: " + ndList.getLength()); Element el = (Element) ndList.item(0); return el; } catch (Exception e) { e.printStackTrace(); } return null; }
Und egal wie ich das Ganze wende und drehe - auch mit URL - ich komme immer wieder bei diesem Problem heraus.java.io.FileNotFoundException: C:\Programme\Mozilla Firefox\http:\172.30.54.239:8080\mdtscan\work\listedrucken.jar!\de\hes\log4j\applets\log4j.xml (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at de.hes.web.applets.ListeDruckenGUI.getElement4Log4j(ListeDruckenGUI.java:187)
at de.hes.web.applets.ListeDruckenGUI.init(ListeDruckenGUI.java:63)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Weiß jemand Rat?
Vielen Dank
Gruß
Gerrit
-
Wie ich schon sagte: Verwende getResourceAsStream und lies aus dem InputStream ein.
-
11.02.09 15:01 #7
- Registriert seit
- Feb 2005
- Ort
- 127.0.0.1
- Beiträge
- 189
man muss es nur richtig machen und schon funktioniert es!
Danke zeja
Sieht nun so aus:
Und der Aufruf an sich sieht dann so aus:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
public class SpecialLog4jUtils { private Class parentClass; public SpecialLog4jUtils(Class classThisObjIsCalledIn) { this.parentClass = classThisObjIsCalledIn; } /** * Liest eine XML-Datei aus und gibt diese als <code>Element</code> zurück. * * @param path2log4jxml - Package (mit beginnendem Slash!) und Dateiname der Konfig: <code>/de/hes/conf/log4j.xml</code> * @return */ public Element getElement4Log4j(String path2log4jxml) { try { InputStream is = this.parentClass.getResourceAsStream(path2log4jxml); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse( is ); return document.getDocumentElement(); } catch (Exception e) { e.printStackTrace(); return null; } } }
Hoffe, das hilft evtl. weiter!Code :1
DOMConfigurator.configure(new SpecialLog4jUtils(this.getClass()).getElement4Log4j("/de/xyz/log4j/applets/log4j.xml"));
Gruß
Gerrit
-
Ich wollte damit eigentlich bewirken dass du in die API schaust und dir nicht irgendwas abenteuerliches selber bastelst.
Code java:1
new DOMConfigurator().doConfigure(is, LogManager.getLoggerRepository());
-
13.02.09 08:26 #9
- Registriert seit
- Feb 2005
- Ort
- 127.0.0.1
- Beiträge
- 189
oh ja, das ist wirklich viel schöner als meine Bastelei

Danke!Code :1 2
// spezielles Log-File für das Applet festlegen - muss erste Anweisung sein! new DOMConfigurator().doConfigure(this.getClass().getResourceAsStream("/de/xyz/log4j/applets/log4j.xml"), LogManager.getLoggerRepository());
Ähnliche Themen
-
JSF und Log4J
Von Hardi82 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 5Letzter Beitrag: 23.11.09, 16:49 -
Loggen mit log4j
Von irfl im Forum JavaAntworten: 30Letzter Beitrag: 23.07.08, 12:24 -
log4j
Von WIK-Lars im Forum JavaAntworten: 1Letzter Beitrag: 02.08.07, 09:43 -
log4j
Von burakbalbina im Forum JavaAntworten: 0Letzter Beitrag: 05.07.06, 17:17 -
log4j
Von lernen.2007 im Forum JavaAntworten: 4Letzter Beitrag: 27.04.06, 09:32





Zitieren


Login





