Zum Inhalt springen

Log4J konfigurieren (Ausgabedatei)


Empfohlene Beiträge

Geschrieben

hi,

log4j will nicht so ganz gehorchen ... :D

Man hat ja die möglichkeit, log4j entweder hardcoded oder über eine (XML) - Datei zu konfigurieren. Ich versuche einen Mischbetrieb hinzubekommen.

den hauptteil der Konfiguration wollte ich über die XML regeln:


  <appender name="MitteilungLogFileAppender" class="XXX.LetzteMitteilungAppender">

    <!-- <param name="file" value="D://test/tempLetzteMitteilung.log"/> -->

    <param name="append" value="false"/>  

    <layout class="org.apache.log4j.PatternLayout">

      <param name="conversionPattern" value="%d | %-5p | %c{1} | - %m%n"/>

    </layout>

    <filter class="org.apache.log4j.varia.LevelRangeFilter">

        <param name="LevelMin" value="DEBUG" />

        <param name="LevelMax" value="FATAL" />

    </filter>

  </appender>

Allerdings möchte ich den Pfad + Namen der Logdatei dynamisch setzen. (Über unsere zahlreichen Programm-Parameter) Nun ist es aber so, dass

    <!-- <param name="file" value="D://test/tempLetzteMitteilung.log"/> -->

da sein muss... also der Parameter "file" muss angegeben sein?! Ich kann mir nicht vorstellen, dass das Framework so SO Steif ist. Ich habs schon hinbekommen, dass er ne dynamische Datei anlegt, über

    /** @see org.apache.log4j.FileAppender#activateOptions() */

    public void activateOptions() {

        super.activateOptions();

        if (null == raFile) {

            if (null != fileName) {

                try {

                    String test = System.getProperty(MituebConstants.SYSPROP_AUSGABE_PFAD);

                    raFile = new RandomAccessFile(test + "Dyna.log", "rw");

                } catch (Exception ex) { //

                }

            }

            if (null == raFile) {

                LogLog.error("Logdatei für letzte Mitteilungsverarbeitung'" + 

                             fileName + "' kann nicht angelegt werden fuer '" + 

                             name + "'.");

            }

        }

    }

Nun ist es aber so, dass er natürlich trotzdem noch die datei aus der XML anlegt. Das ist zum einen ein ziemlich hässlicher workaround, zum anderen werden unsere admins mir was husten, einfach wild in irgendwelche Verzeichnisse zu schreiben. (Falls das überhaupt technisch klappt - was ich arg bezweifel!)

Gibts dafür ne möglichkeit oder muss ich die ganze xml wegwerfen?

Geschrieben

Ich hab jetzt die komplette xml weggeworfen und benutzer 3 appender, die ich im programm selbst konfiguriere. Einen für die Konsole, einen Fileappender für die komplette Tagesverarbeitung und einen Fileappender für die aktuelle Mitteilungsverarbeitung, den ich selbst geschrieben habe.

Funktioniert tadellos.

Geschrieben

hat dann aber den Nachteil, dass bei sich ändernden Appendern der Source neu compiliert werden muss.

Wenn du noch ne Möglichkeit für ne dynamische Config findest, würde mich interessieren

Geschrieben

Geht so, die parameter die sich bei realistischer betrachtung ändern könnten, werden beim Programmstart übergeben. (Dateiname, Verzeichnis, Loglevel... usw)

Das Pattern fürs Layout oder das Encoding ist da zwar fest drin... Aber wann passt man sowas schonmal an?

Eine Lösung, die nicht hard-coded ist, wär mir auch bedeutend lieber - aber bei meiner recherche sah es so aus, als gäbe es nur die drei möglichkeiten (die untereinander nicht kompatibel sind);

- XML

- Property-File

- hard-coded

choose your poison :D

Geschrieben
Eine Lösung, die nicht hard-coded ist, wär mir auch bedeutend lieber - aber bei meiner recherche sah es so aus, als gäbe es nur die drei möglichkeiten (die untereinander nicht kompatibel sind) [...]
Ich wiederhole mich: Es steht dir frei einen eigenen Appender zu schreiben, der sich aus einer beliebigen Quelle (oder einer Kombination von Quellen) konfigurieren lässt.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...