关于log4j

whyxx 2005-05-27 01:59:27
各位大哥大姐知不知道如果配置log4j,可以让每一次访问server,都出一个新的log文件,而不是全写在一个文件里啊.不要告诉我自己重写log4j,那只是最后一招
...全文
121 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
pigo 2005-05-27
  • 打赏
  • 举报
回复
对照上面的配置,把日志文件的命名再细分一点就ok了。
比如精确到秒,那么每次启动的时候必然创建的是一个新文件。


log4j.appender.R.DatePattern = yyyy-MM-dd-HH-mm-ss.log

DailyRollingFileAppender是可以支持每分钟就生成一个日志文件的。

org.apache.log4j.DailyRollingFileAppender的源代码如下:

void printPeriodicity(int type) {
switch(type) {
case TOP_OF_MINUTE:
LogLog.debug("Appender ["+name+"] to be rolled every minute.");
break;
case TOP_OF_HOUR:
LogLog.debug("Appender ["+name
+"] to be rolled on top of every hour.");
break;
case HALF_DAY:
LogLog.debug("Appender ["+name
+"] to be rolled at midday and midnight.");
break;
case TOP_OF_DAY:
LogLog.debug("Appender ["+name
+"] to be rolled at midnight.");
break;
case TOP_OF_WEEK:
LogLog.debug("Appender ["+name
+"] to be rolled at start of week.");
break;
case TOP_OF_MONTH:
LogLog.debug("Appender ["+name
+"] to be rolled at start of every month.");
break;
default:
LogLog.warn("Unknown periodicity for appender ["+name+"].");
}
}


jFresH_MaN 2005-05-27
  • 打赏
  • 举报
回复
可以实现,他的难度不在于log4j的配置上面,我们这些都是应该再代码里面来控制。

http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=207948
这个是动态地修改Appender的输出文件

然后你只需要每次有新的连接到Server的时候调用这个代码就可以了
:)
grapepaul 2005-05-27
  • 打赏
  • 举报
回复
学习啦!
whyxx 2005-05-27
  • 打赏
  • 举报
回复
其实也没什么大不了的,只是前不久做一个.net的项目,用了人家公司提供的framework,里面能实现这种功能,最近没事想看看log4j是否也能简单的实现.
whyxx 2005-05-27
  • 打赏
  • 举报
回复
纯粹为了开发的时候调试方面.
OnlyFor_love 2005-05-27
  • 打赏
  • 举报
回复
顶一下,关注中
javagems 2005-05-27
  • 打赏
  • 举报
回复
每次访问出一个log文件,感觉如果那样的话,一天访问几百次,那不是要几百个文件
顺便问一下,这个做什么用呢?
whyxx 2005-05-27
  • 打赏
  • 举报
回复
可以控制文件的大小的方法我知道,我就是需要控制每次访问单独出一个log文件.
阿敏的方法只是每天出一个.
YuLimin 2005-05-27
  • 打赏
  • 举报
回复

# Set root logger level to ERROR and its only appender to R.
log4j.rootLogger = INFO,R

# R is set to be a DailyRollingFileAppender.
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File = Application.log
log4j.appender.R.DatePattern = yyyy-MM-dd'.log'
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
OnlyFor_love 2005-05-27
  • 打赏
  • 举报
回复
定义appender的输出目的地。定义一个appender的输出目的地的格式为log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j提供了以下几种常用的输出目的地:
? org.apache.log4j.ConsoleAppender,将日志信息输出到控制台
? org.apache.log4j.FileAppender,将日志信息输出到一个文件
? org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件
? org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log的文件会改名为example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex,MaxBackupIndex的值可在配置文件中定义。
rootcn 2005-05-27
  • 打赏
  • 举报
回复
可以控制文件的大小, 当文件达到一定的大小时, 自动新建一个文件.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧