Logging

Status
Nicht offen für weitere Antworten.

JB

Mitglied
Hallo

ich möchte mit dem Mitgelieferten Klassen usw. von Java loggen.

Jetzt hab ich mal folgendes gemacht.
Zuerst eine Klasse Logging erstellt.

Code:
import java.io.IOException;
import java.util.logging.*;

/**
 *
 * @author Bernhard
 */
public  class Logging{
    static Logger logger = Logger.getLogger("edmserver.Logging");
    Handler file_handler;
    Formatter xmllogging;
    /** Creates a new instance of Logging */
    public  Logging() throws IOException {
        // Logger erzeugen
        // File Handler erzeugen
        file_handler = new FileHandler("Logging.xml");
       // Formatter erzeugen
        xmllogging = new XMLFormatter();
        file_handler.setFormatter(xmllogging);
        logger.addHandler(file_handler);
        logger.setLevel(Level.ALL);
        logger.entering("Logging","testmylogger");
        
    }
    public void testmylogger(){
        logger.log(Level.WARNING,"Hallo das ist ein Test des Loggers.");
        
    }
   
}

Hauptprogramm:

Code:
public static void main(String[] args) {
        // TODO code application logic here
           
        try{
            lg=new Logging();
            lg.testmylogger();
        }
        catch(IOException ioexc){
            
        }


Danach erstelle ich eine Instanz von der Klasse im Hauptprogramm und führe die Methode testmylogger() aus.

Nun wird aber jedes mal neustart die Loggingdatei neu erstellt, wie kann ich das verhindern, denn ich möchte ja nciht das bei einem neustart die alten logging-Einträge verloren gehen.

Weiteres wäre es auch sehr wichtig, dass diese Logging-Klasse statisch ist und dass ich sie von jeder Stelle im Programm aufrufen kann. Nur lasst er mich nicht compilieren, wenn ich diese Klasse als statisch deklariere.

Danke schon mal für eure Mithilfe

mfg
bernhard
 
M

maki

Gast
Wegen des Problems mit der überschriebenen Datei solltest du mal deine logging properties posten.

Normalerweise hat jede Klasse einen eigenen statischen Logger, einen einzigen für die ganze Anwendung ist etwas wenig ;)
Ausser dem kann man nur so die Konfigurationsmöglichkeiten ausschöpfen.
 

JB

Mitglied
Hab hier mal die logging.properties gepostet:

Code:
############################################################
#  	Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.  
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
#  	Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler 
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= INFO

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.xyz.foo.level = SEVERE

Was muss ich daran ändern und muss ich da die globale ändern oder muss ich eine Kopie Davn im Verzeichnis des Programmes, welches Loggen soll erstellen und da dann die Konfigurationen vornehmen.
Weil wenn ich die globale Datei ändere gilt das ja für alle Java-Programme, welche unter dieser Runtime laufen.
 
M

maki

Gast
Mach dir einen Logger für jede Klasse die Loggen soll:

Code:
    private static Logger log = Logger.getLogger(NameDerZuLoggendenKlasse.class.toString());

Dannach kannst du denn Logger benutzen:
Code:
public void meineMethode(String arg0) {
    if(log.isLoggable(java.util.logging.Level.FINE)){
        log.fine("meineMethode(String arg0="+arg0+")");
    }

}
Anleitung lesen kann helfen: http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html

Wenn ich mich nicht irre, kann bei java.util.Logger eine properties Datei pro Classpath gesetzt werden, einfach die properties zu deinen Klassen ins default package kopieren.

Ansonsten bleibt noch zu sagen, das log4j zu bevorzugen wäre ;)
Warum eine schlechte Kopie nehmen wenn das Original immer noch besser ist...
 

JB

Mitglied
thx für eure unterstützung,

log4j hab i mir eh auch schon angeschaut, werd des eh auch ausprobieren.
 
G

Guest

Gast
Schreib dir am besten selbst ein Interface und einen Logger und dann die Implementierung für z.B. Log4J und/oder
andere. Dadurch wird es austauschbar und einheitlich in der Anwendung.
 
M

maki

Gast
Schreib dir am besten selbst ein Interface und einen Logger und dann die Implementierung für z.B. Log4J und/oder
andere. Dadurch wird es austauschbar und einheitlich in der Anwendung.
Meinst du so wie commons-logging von jakarta? ;)

Solange es keine Bibliothek ist die du schreibst, ist es imho am besten gleich auf log4j zu setzen.
 

PollerJava

Top Contributor
JD wie hast du das geschafft, dass inder XML- Datei die alten einträge bleiben nach einem Neustart des Programms?
ich hab mom genau Dein Programm zum testen.

lg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
T Logging mit org.apache.logging.log4j Allgemeine Java-Themen 1
MiMa Logging mit log4j2 in verschiedene Dateien? Allgemeine Java-Themen 22
S Input/Output Jave.utill.logging ohne Default-Locale also in Englisch Allgemeine Java-Themen 3
A Automatisches Methoden Laufzeiten logging? Allgemeine Java-Themen 7
M JVM: Client Software Logging und Profiling aktivieren Allgemeine Java-Themen 1
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
P Logging levels Allgemeine Java-Themen 2
X Logging Messages - mehr Details? Allgemeine Java-Themen 4
F Error Logging - best practices? Allgemeine Java-Themen 3
L util.logging Log Rotation Allgemeine Java-Themen 3
W Java Logging Problem Allgemeine Java-Themen 3
H java.util.logging Formatter Optionen setzen Allgemeine Java-Themen 2
D Logging XMLFormatter Allgemeine Java-Themen 3
B OOP java.util.logging.Logger: Wie kann ich mehre Klassen in ein Logfile schreiben lassen? Allgemeine Java-Themen 12
D Technologiefragen, logging, JMX Allgemeine Java-Themen 3
S Tomcat java.util.logging - keine Logs Allgemeine Java-Themen 12
J Logging mehrerer Methoden Allgemeine Java-Themen 21
S log4j - doppeltes Logging Allgemeine Java-Themen 4
B Logging von Exceptions Allgemeine Java-Themen 7
S log4j Logging über mehrere Klassen Allgemeine Java-Themen 13
P SLF4J Logging Level einstellen Allgemeine Java-Themen 2
DamienX Google Guice AOP + Logging Allgemeine Java-Themen 3
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
A java logging api scheint nicht thread save zu sein Allgemeine Java-Themen 22
T Java Logging API in Multi Threaded API Allgemeine Java-Themen 2
P fehlende Mehrfachvererbung logging.Handler impl. Observable Allgemeine Java-Themen 5
M Verbieten Applets die Nutzung von Commons Logging? Allgemeine Java-Themen 7
F Java logging Allgemeine Java-Themen 4
F Java logging Leerzeile als Standardeinstellung Allgemeine Java-Themen 4
S Java logging konfigurieren? Allgemeine Java-Themen 5
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
J Log4j / commons-logging Allgemeine Java-Themen 3
K Logging mit Log4j Allgemeine Java-Themen 2
G Logging Allgemeine Java-Themen 4
S Logging mit log4j Allgemeine Java-Themen 17
S Logging Allgemeine Java-Themen 9
M Rat gesucht: Logging (log4J oder java.util.logging oder .) Allgemeine Java-Themen 5
T Logging Allgemeine Java-Themen 12
T Transaction Logging Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben