log4j 生成日期的文件夹
时间: 2024-01-28 18:03:56 浏览: 32
你可以使用log4j的配置文件来生成日期的文件夹。下面是一个示例配置文件:
```
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=/logs/%d{yyyy-MM-dd}/logfile.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
```
在上面的配置中,`%d{yyyy-MM-dd}` 会在日志文件路径中生成当前日期的文件夹。例如,如果今天是2022年1月1日,则日志文件将保存在 `/logs/2022-01-01/logfile.log` 中。
你可以根据需求修改文件路径和日期格式。
相关问题
log4j按日期生成文件夹,自动清理N天前的日志。并且可以设置每个文件最大内存为多少,以及当天允许生成的最大文件个数
好的,针对你的问题,我可以提供以下解决方案:
1.按日期生成文件夹:可以通过log4j的配置文件中的时间参数来实现。例如:
```
log4j.appender.file.File=${log.dir}/app-%d{yyyy-MM-dd}/app.log
```
上述配置中,%d{yyyy-MM-dd}表示按照年月日格式生成文件夹,其中${log.dir}是指定的日志目录。
2.自动清理N天前的日志:可以使用log4j的RollingFileAppender和TimeBasedRollingPolicy来实现。例如:
```
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=${log.dir}/app-%d{yyyy-MM-dd}/app.%d{yyyy-MM-dd}.log.gz
log4j.appender.file.RollingPolicy.ActiveFileName=${log.dir}/app.log
log4j.appender.file.RollingPolicy.MaxHistory=7
log4j.appender.file.RollingPolicy.CompressionLevel=9
```
上述配置中,MaxHistory参数指定了保存最近7天的日志文件,超过7天的日志文件将自动清理。
3.设置每个文件最大内存为多少:可以使用log4j的SizeBasedTriggeringPolicy来实现。例如:
```
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=${log.dir}/app-%d{yyyy-MM-dd}/app.%d{yyyy-MM-dd}.log.gz
log4j.appender.file.RollingPolicy.ActiveFileName=${log.dir}/app.log
log4j.appender.file.RollingPolicy.MaxHistory=7
log4j.appender.file.RollingPolicy.CompressionLevel=9
log4j.appender.file.TriggeringPolicy=org.apache.log4j.rolling.SizeBasedTriggeringPolicy
log4j.appender.file.TriggeringPolicy.MaxFileSize=10MB
```
上述配置中,MaxFileSize参数指定了每个日志文件的最大内存为10MB,超过10MB的日志将自动滚动到下一个文件。
4.设置当天允许生成的最大文件个数:可以使用log4j的CountingQuietWriter来实现。例如:
```
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.file.RollingPolicy.FileNamePattern=${log.dir}/app-%d{yyyy-MM-dd}/app.%d{yyyy-MM-dd}.log.gz
log4j.appender.file.RollingPolicy.ActiveFileName=${log.dir}/app.log
log4j.appender.file.RollingPolicy.MaxHistory=7
log4j.appender.file.RollingPolicy.CompressionLevel=9
log4j.appender.file.Writer=org.apache.log4j.helpers.CountingQuietWriter
log4j.appender.file.Writer.CountDirection=1
log4j.appender.file.Writer.CountLimit=10
```
上述配置中,CountLimit参数指定了当天允许生成的最大文件个数为10个,超过10个的日志将被覆盖。
希望以上解决方案可以帮到你。
log4j按日期建目录存放日志
log4j可以通过配置文件实现按日期建目录存放日志,具体步骤如下:
1. 在log4j.properties或log4j.xml配置文件中,设置需要记录日志的类的日志级别和输出方式。
2. 在输出方式中,使用`org.apache.log4j.DailyRollingFileAppender`类代替`org.apache.log4j.FileAppender`类,设置`DatePattern`属性为需要按日期建目录的格式,例如`'.'yyyy-MM-dd`表示按天建目录。
3. 在输出路径中,使用log4j的布局模式,例如`%d{yyyy-MM-dd}-%p-%c.log`表示日志文件名以日期、日志级别、类名命名。
下面是一个示例log4j.properties配置文件:
```
# 设置日志级别
log4j.rootLogger=INFO, file
# 输出方式
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.File=/var/log/myapp/%d{yyyy-MM-dd}/myapp-%p-%c.log
# 日志格式
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5p] [%c{1}] - %m%n
```
这个配置文件将日志记录到`/var/log/myapp/`目录下的按日期建立的子目录中,以日期、日志级别、类名命名日志文件。在代码中,使用`Logger.getLogger()`方法获取需要记录日志的类的Logger对象,然后使用`logger.info()`等方法记录日志。
注意,使用按日期建目录存放日志会产生大量的小文件,需要根据实际情况进行调整。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)