Est-ce que Log4J 1.2 fournit tout mécanisme au journal des archives quotidiennes?
Tout le monde dit que je peux le faire via org.apache.log4j.rolling.timebasedrollingpolicy mais dans des sources de 1.2.15, je ne vois aucune classe du TimebaseDrollingpolicy. p>
J'ai trouvé une résolution: p>
4 Réponses :
Ce que vous demandez peut être fait avec DailyRollingFileAppender a>. p>
Oui, mais cela ne me permet pas de mettre un journal roulé à un dossier spécifique. J'ai trouvé une résolution - Apache-Log4J-Extras
Vous devez définir votre appendend comme DailyrollingfileAppender et définir le modèle de date à la granularité jusqu'à la journée. Vous trouverez ci-dessous un exemple d'appendice nommé «fichier» qui sortira à application.log et roule le fichier quotidiennement en ajoutant la date à la fin après minuit et démarrez un nouveau fichier.
log4j.rootLogger=debug, file
OK, et comment faire rouler le fichier non pas sur le même dossier que le fichier d'origine, mais à tout autre dossier défini?
Et si je veux supprimer le fichier journal après une certaine période et commencer une nouvelle? Le cas d'utilisation étant, je n'ai pas besoin des vieux journaux.
@Cyberknight c'est un très vieux post. Je vous suggérerais de passer à la connexion. Vous pouvez le faire très facilement avec cela et d'autres choses (comme déplacer des fichiers archivés vers d'autres répertoires et les zip). Vous pouvez également lui donner le nombre de fichiers archivés que vous souhaitez conserver, donc par exemple si vous êtes en train de rouler quotidiennement et que vous ne voulez que conserver une semaine de données que vous définissez maxhistory code> sur 7.
Utiliser note em>: cette réponse a été extraite de la question de l'OP, afin de préserver le bon format mandaté par échange de pile. (Le OP n'a clairement pas répondu au commentaire de JBX.) P> p> log4j-extras code>:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="DEV_HOME" value="./logs" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n </Pattern> </layout> </appender> <!--<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">--> <appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${DEV_HOME}/nameOfYourLog.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern> %d{yyyy-MM-dd HH:mm:ss} - %msg%n </Pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- rollover daily --> <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log </fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <logger name="com.the.package.you.wish.to.log" level="debug" additivity="false"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE-AUDIT" /> </logger> <root level="error"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE-AUDIT" /> </root> </configuration>
Spring Boot n'utilise pas directement Log4J, donc à l'aide de propriétés telles que log4j.appender. * Code> ne fonctionne pas. Vous devez utiliser ses propriétés de journalisation, préfixées
LOGING CODE>. Par exemple:
Logging.file = Application.log code>. Ils ont besoin d'entrer dans votre
Application.Properties code> ou
application.yml code>. docs.spring. IO / Spring-Boot / Docs / 2.0.4.Release / Référence / HTML / ... Créez un
entièrement fouetté logback-spring.xml code> Configuration.
@ user253202 Bonjour, si vous avez trouvé une solution à votre demande en utilisant Apache-Log4J-Extras, mettez-le ici pour qu'il soit partagé avec d'autres personnes. Marquez-le comme votre propre réponse.