Log4j DailyFileAppender in welcher Version?

takidoso

Erfahrenes Mitglied
Hallo und Halli,
Ich bin für die Benutzung von log4J auf der Suche nach einem FileAppender, der in der Lage ist recht generische TimeStamps in den Dateinamen einzubringen. nach einigem Googeln glaubte ich fündig geworden zu sein
http://www.docjar.com/docs/api/org/apache/log4j/DailyFileAppender.html

Doch leider scheint in meiner verwendeteen log4J Version dieser Appender nicht zu existieren.

Leider habe ich bisher nicht rausfinden können welche der Versionen diesen DaylyFileAppender beinhaltet. Weiß da vielleicht jemand zufällig welche das ist?

für hilfreiche Hinweise dankbar

Takidoso
 
Moin,

also ich nutze log4j V1.2.8 und da geht es!
Poste doch mal Dein properties-File!

Gruß
Klaus

Aha ... demnach ist diese Klasse nicht mehr in den neueren Versionen enthalten....
ich verwende die Version 1.2.14 und dort gibt es die Klasse nicht (mehr) :-(
Dei Fhlermeldung die da kommt, sagt aus, dass die Klasse nicht gefunden wurde. Ein Blick in die .jar datei zeigte, dass tatsächlich die DailyFileAppender-Klasse nicht existiert. Die DailyRollingFileAppender jedoch, aber diese entspricht nicht dem was ich machen will. :mad:

Damit geht's niccht, weil Appender unbekannt
Code:
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

<appender name="cmkRiskAp" class="org.apache.log4j.DailyFileAppender"> 
        <param name="file" value="'logs/${user.name}/CMKRisiko.'yyyy-MM-dd'.log'" /> 
        <param name="Append" value="true" /> 
        <layout class="org.apache.log4j.PatternLayout"> 
                <param name="ConversionPattern" 
                        value="%d{ISO8601} %-5p [%t] %c: %m%n" /> 
        </layout> 
</appender> 
        
<category name="de.cmk.risiko.data.CampaignCalculator"> 
        <priority value="TRACE" /> 
        <appender-ref ref="cmkRiskAp" /> 
</category> 
        
</log4j:configuration>
Damit geht's aber ist nicht dass was ich will
Code:
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

<appender name="cmkRiskAp" class="org.apache.log4j.DailyRollingFileAppender"> 
        <param name="datePattern" value="'.'yyyy-MM-dd" /> 
        <param name="file" value="logs/${user.name}/CMKRisiko.log" /> 
        <param name="Append" value="true" /> 
        <layout class="org.apache.log4j.PatternLayout"> 
                <param name="ConversionPattern" 
                        value="%d{ISO8601} %-5p [%t] %c: %m%n" /> 
        </layout> 
</appender> 
        
<category name="de.cmk.risiko.data.CampaignCalculator"> 
        <priority value="TRACE" /> 
        <appender-ref ref="cmkRiskAp" /> 
</category> 
        
</log4j:configuration>

Genaugenommen bräuchte ich noch nicht einmal ein Rolling, da pro Start der Anwendung ein neues log-File produziert werden soll.
Ich dachte eigetnlich das solche Konfigurationen Zeitstempel im log-Dateinamen eine Art Standardanforderung seien, aber wie mir scheint, ich lasse mich gerne zurückhalten und eines Besseren belehren, muss ich da doch tiefer einsteigen und einen eigenen FileAppender schreiben :-(
 
Moin,

oops, da habe eben wohl etwas schnell gelesen :suspekt: mea culpa!

Ich nutze in der V1.2.8 auch den "DailyRollingFileAppender" - wußte gar nicht den anderen überhaupt gibt ....

Und was gefällt Dir an der Rolling-Version nicht resp. was hat die andere anders gemacht ? ?

Gruß
Klaus
 
Also soweit ich das sehe hängt der DailyRollingAppender lediglich das Datum hintendran, oder muss ich da den Formatstring ändern?
Zum anderen will ich eigetnlich kein Rolling haben, nur wenn die Anwendung neu aufgerufen wird soll es ein neues Log-File geben.

BTW: ich habe gerade festgestellt, dass meine Version aus dem Jahre 2006 stammte. Aus welcher Zeit ist denn die, die Du benutzt?
 
Also soweit ich das sehe hängt der DailyRollingAppender lediglich das Datum hintendran, oder muss ich da den Formatstring ändern?
Zum anderen will ich eigetnlich kein Rolling haben, nur wenn die Anwendung neu aufgerufen wird soll es ein neues Log-File geben.

BTW: ich habe gerade festgestellt, dass meine Version aus dem Jahre 2006 stammte. Aus welcher Zeit ist denn die, die Du benutzt?

Hallo,

richtig, es wird nur das definierte Datum beim Wechsel an die alte Datei gehängt!

Bei mir ist es so eingetragen:
Code:
#############################
# Dateiwechsel um Mitternacht
#############################
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.file=./CRM.log
log4j.appender.File.DatePattern='.'yyyy-MM-dd
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d %-4r %-5p [%t] %c (%L) %x - %m%n
log4j.appender.File.append=true
log4j.appender.File.Threshold=INFO

Die genaue Eingabe ist wohl entscheidend. Habe mal das Manual, das ich vor geraumer Zeit im Internet fand, angehängt!

Von wann unsere Version hier ist, kann ich nicht genau sagen (wo sehe ich das denn ? ? ?). Allerdings ist sie wohl ca. Mitte 2003 downgeloadet worden ..... :suspekt: :rolleyes: :)

Gruß
Klaus
 

Anhänge

  • log4j_manual.jpg
    log4j_manual.jpg
    44,9 KB · Aufrufe: 37
ich habatte das Datum an den TimeStamps der Klassen aus dem jar gelesen ;-)
Ja genau den Efekt, dass immer nur bei einer neuen Datei das Datum rangehängt wird stört mich.
Ich will eigetnlich nach gut Dünken den Zeitstempel so wie Java in möglich macht (bis zu Milis) selbst bestimmen können im Dateinamen.
Ich glaube da komme ich um einen eigenen Appender nicht drumrum.
Kann da halt auch nu rvon der Source ausgehen, die ich unter dem DailyFileAppender gesehen habe. Falls mich die Motivation nicht verlassen sollte, werde ich hier in dem Thread den Appender posten.
 
hallo,

ja, sowas hatte ich damals, als ich hier damit anfing, auch gehofft!
Hab's aber schnell aufgegeben :-)

Ja, ein solcher Appender würde mich schon sehr interessieren - alleine schon, WIE man sowas erstellt! Da habe ich mich noch nie rangewagt :rolleyes:

Dann wünsche ich Dir gutes Gelingen :)
tschüss
Klaus
 
Hallo,

ich verwende die Version 1.2.14 und dort gibt es die Klasse nicht (mehr) :-(
In Version log4j-1.2.15 gibts:
org.apache.log4j.DailyRollingFileAppender

Was willst du denn genau machen? Das ist mir nach dem überfliegen deiner Beiträge immer noch nicht ganz klar...

Gruß Tom
 
Hi Tom,
ich wollte einen FileAppender, der in der Lage ist den FileNamen sehr wahlfrei und dynamisch zu gestalten. In meinem ersten Anwendungsfall dass ein TimeStamp eingebracht werden kann, ähnlich wie es im DalyFileAppender den ich beschrieben fand ist. Jedoch scheint es diesen Appender nicht (menr) wirklich in dem Log4J zu geben. Einen DaiyRollingFileAppender will ich nicht, da er halt die alte Datei umbenennt sobald er eine neue anfängt und dann seinen TimeStamp einbringt.

Also bleibt mir vermutlich nichts anderes übrig als selbst einen zu schreiben. Da ich glücklicherweise bereits eine Klasse habe, die laufende Nummern und TimeStamps, wenn notwenndig auch Teile anderr Strings in einen Strings nach Formatangaben zu komponieren, muss ich "lediglich" verstehen wie ich einen solchen FileAppender schreibe. Ich denke ich kann, so mich nicht die Motivation verlässt das hinbekommen.

Oder weit Du zufällig von einem schon existierenden Appender sowas macht?
(wäre toll, denn dann müsste ich dieses Rad nicht erfinden)

Takidoso
 

Neue Beiträge

Zurück