log4j按天生成日志文件的问题

时间:2022-12-22 17:20:08
向大家请教个问题:
    Log4j是否支持按天生成日志文件,且文件名为XXXX.YYYYMMDD形。
    文件名必须在刚创建的时候就是那个形式的。不要那种在每天午夜过后才生成以今天日期为后缀的格式。
    如果大家有更好的办法,那也请多多赐教!
    谢谢! 

11 个解决方案

#1


自己写一个呗

#2


引用楼主 opentheoo 的回复:
向大家请教个问题:
    Log4j是否支持按天生成日志文件,且文件名为XXXX.YYYYMMDD形。
    文件名必须在刚创建的时候就是那个形式的。不要那种在每天午夜过后才生成以今天日期为后缀的格式。
    如果大家有更好的办法,那也请多多赐教!
    谢谢!

log4j支持按天输出日志文件,新创建的文件并不是yyyyMMdd形式的,过了当有新的日志文件生成时,上次的日志文件将以yyyyMMdd重命名
LZ强悍的话,自己写一个咯,O(∩_∩)O~

#3


哦 是这样呀 那你有没有例子给我看看呢 
谢谢了 嘿嘿

#4


在log4j.properties文件里写

log4j.appender.finfo=org.apache.log4j.RollingFileAppender
log4j.appender.finfo.Threshold=INFO//类型是INFO,可以自己设置ERROR什么的
log4j.appender.finfo.File=logs/Kloseinfo.log  //自己设置路径
log4j.appender.finfo.MaxFileSize=5000KB
log4j.appender.finfo.MaxBackupIndex=10
log4j.appender.finfo.layout=org.apache.log4j.PatternLayout
log4j.appender.finfo.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS}\:[%p]  [%t] %r   %l %m%n

#5


properties

#6


简单点的:.

log4j.rootLogger=info,A1 
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.Append=true 
log4j.appender.A1.File=D\:/log4j.log 
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log' 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} Method\:  %l%n%m%n

#7


<appender name="loginfile" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/data/logs/login.log"/>
        <param name="DatePattern" value="'_'yyyy-MM-dd'.log'"/>  //这个地方按你要求的改
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}|%m%n"/>
        </layout>
    </appender>
<logger name="login" additivity="false">
        <level value="info"/>
        <appender-ref ref="loginfile"/>
    </logger>

#8


鼎一个,这个很简单

引用 6 楼 gao512008 的回复:
简单点的:.

log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
log4j.appender.A1.File=D\:/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} Method\:  %l%n%m%n

#9


有一个问题是如果一天的日志体积很大,就不好分析了。

#10


引用 8 楼 foolishdault 的回复:
鼎一个,这个很简单

引用 6 楼 gao512008 的回复:
简单点的:.

log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
log4j.appender.A1.File=D\:/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} Method\:  %l%n%m%n


这个类型的输出是什么样的呀 比如我想自己定义文件的大小 
这个不能把?
在一个就是比如到了一定的大小了
就新生成一个文件 这个文件的名字我想要是YYYYMMDD形似的

#11


DailyRollingFileAppender

高并发的时候切换文件出现问题,没解决.使用要注意

#1


自己写一个呗

#2


引用楼主 opentheoo 的回复:
向大家请教个问题:
    Log4j是否支持按天生成日志文件,且文件名为XXXX.YYYYMMDD形。
    文件名必须在刚创建的时候就是那个形式的。不要那种在每天午夜过后才生成以今天日期为后缀的格式。
    如果大家有更好的办法,那也请多多赐教!
    谢谢!

log4j支持按天输出日志文件,新创建的文件并不是yyyyMMdd形式的,过了当有新的日志文件生成时,上次的日志文件将以yyyyMMdd重命名
LZ强悍的话,自己写一个咯,O(∩_∩)O~

#3


哦 是这样呀 那你有没有例子给我看看呢 
谢谢了 嘿嘿

#4


在log4j.properties文件里写

log4j.appender.finfo=org.apache.log4j.RollingFileAppender
log4j.appender.finfo.Threshold=INFO//类型是INFO,可以自己设置ERROR什么的
log4j.appender.finfo.File=logs/Kloseinfo.log  //自己设置路径
log4j.appender.finfo.MaxFileSize=5000KB
log4j.appender.finfo.MaxBackupIndex=10
log4j.appender.finfo.layout=org.apache.log4j.PatternLayout
log4j.appender.finfo.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS}\:[%p]  [%t] %r   %l %m%n

#5


properties

#6


简单点的:.

log4j.rootLogger=info,A1 
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.Append=true 
log4j.appender.A1.File=D\:/log4j.log 
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log' 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} Method\:  %l%n%m%n

#7


<appender name="loginfile" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/data/logs/login.log"/>
        <param name="DatePattern" value="'_'yyyy-MM-dd'.log'"/>  //这个地方按你要求的改
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd hh:mm:ss}|%m%n"/>
        </layout>
    </appender>
<logger name="login" additivity="false">
        <level value="info"/>
        <appender-ref ref="loginfile"/>
    </logger>

#8


鼎一个,这个很简单

引用 6 楼 gao512008 的回复:
简单点的:.

log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
log4j.appender.A1.File=D\:/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} Method\:  %l%n%m%n

#9


有一个问题是如果一天的日志体积很大,就不好分析了。

#10


引用 8 楼 foolishdault 的回复:
鼎一个,这个很简单

引用 6 楼 gao512008 的回复:
简单点的:.

log4j.rootLogger=info,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.Append=true
log4j.appender.A1.File=D\:/log4j.log
log4j.appender.A1.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} Method\:  %l%n%m%n


这个类型的输出是什么样的呀 比如我想自己定义文件的大小 
这个不能把?
在一个就是比如到了一定的大小了
就新生成一个文件 这个文件的名字我想要是YYYYMMDD形似的

#11


DailyRollingFileAppender

高并发的时候切换文件出现问题,没解决.使用要注意