bitmuncher
Senior-Nerd
Seit einiger Zeit habe ich nun auch mit Java zu tun und stosse immer wieder auf Dinge, die ich aus C++ anders gewöhnt bin. Für dieses Problem finde ich aber irgendwie keine Lösung. Also... ich habe eine Klasse mit folgendem Aufbau:
Nun brauche ich eine Möglichkeit für ein globales Logging (nein, ich will kein log4j nutzen, da für meine Zwecke total oversized). Also dachte ich mir, dass ich mir einfach einen globalen FileWriter definiere:
Das Problem ist aber, dass Java wohl an dieser Stelle keine IOException verarbeiten kann, so dass es zu folgender Meldung kommt:
Wie bekomme ich also nun die Möglichkeit innerhalb der Klasse in eine Datei zu schreiben ohne dass ich in jeder Funktion die Datei erneut öffnen muss? Bei der Anzahl an Request, die ich auf diese Klasse haben werde, würde das zuviel Rechenzeit fressen. Ich will also beim Laden des Moduls einmal die Datei öffnen und danach nur noch in den Descriptor schreiben. Gibt es soetwas wie den Datentyp FILE auch in Java, also ein Descriptor-Datentyp, der ohne Exceptions auskommt? Oder kann ich irgendwie Dinge, die in onAppStart() definiert werden, auch innerhalb der anderen Funktionen nutzen? Diese Funktion ist nämlich der Eintrittspunkt für den Server, der dieses Modul nutzt.
Code:
public class BasicModule extends ModuleBase{
static Node getRequest(String url){
...
}
public void onAppStart(IApplicationInstance appInstance){
...
}
...
}
Nun brauche ich eine Möglichkeit für ein globales Logging (nein, ich will kein log4j nutzen, da für meine Zwecke total oversized). Also dachte ich mir, dass ich mir einfach einen globalen FileWriter definiere:
Code:
public class BasicModule extends ModuleBase{
FileWriter fstream = new FileWriter("/usr/local/WowzaMediaServerPro/logs/toksta.log");
BufferedWriter out = new BufferedWriter(fstream);
static Node getRequest(String url){
out.write("getRequest called");
...
}
public void onAppStart(IApplicationInstance appInstance){
out.write("onAppStart called");
...
}
...
}
Das Problem ist aber, dass Java wohl an dieser Stelle keine IOException verarbeiten kann, so dass es zu folgender Meldung kommt:
Code:
Severity and Description Path Resource Location Creation Time Id
Default constructor cannot handle exception type IOException thrown by implicit super constructor. Must define an explicit constructor toksta/modules BasicModule.java line 55 1207539830931 2896
Wie bekomme ich also nun die Möglichkeit innerhalb der Klasse in eine Datei zu schreiben ohne dass ich in jeder Funktion die Datei erneut öffnen muss? Bei der Anzahl an Request, die ich auf diese Klasse haben werde, würde das zuviel Rechenzeit fressen. Ich will also beim Laden des Moduls einmal die Datei öffnen und danach nur noch in den Descriptor schreiben. Gibt es soetwas wie den Datentyp FILE auch in Java, also ein Descriptor-Datentyp, der ohne Exceptions auskommt? Oder kann ich irgendwie Dinge, die in onAppStart() definiert werden, auch innerhalb der anderen Funktionen nutzen? Diese Funktion ist nämlich der Eintrittspunkt für den Server, der dieses Modul nutzt.