log4j 日志 按类型分文件存储实现

qq_24416953 2016-12-14 04:54:30
现在这里谢谢大家!
我直接说业务需求把:
项目有4个模块:
1.会员管理
2.短信通知
3.邮件通知
4.支付
现在想实现的是:通用info级别的消息来记录跟踪这四个模块,每个模块产生的日志分别保存到4个不同的日志文件中,这样方便查询

自己造轮子 和 用不同级别来存日志的 就算了,
log4j以外的方式也可以
希望大家提供下思路或者例子

另:我找了挺长时间了,实在无奈只能求助大家了,希望回答的先好好看下问题,没表达明白我可以补充,答非所问就没意思了
再次,谢谢!
...全文
490 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
万物皆字节 2016-12-24
  • 打赏
  • 举报
回复
定义不同的appender
qq_24416953 2016-12-16
  • 打赏
  • 举报
回复
看来还是太年轻了,找到个可以直接是实现的 通过 log4j.logger 的配置 properties配置如下:

log4j.rootLogger=debug,debug
#这里不要配置 smsinfo 和 emailinfo 

log4j.appender.debug = org.apache.log4j.ConsoleAppender
log4j.appender.debug.Target = System.out
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern =%d [%p] [%c] - %m%n

log4j.logger.smsinfo=INFO,smsinfo   
log4j.appender.smsinfo=org.apache.log4j.DailyRollingFileAppender
log4j.appender.smsinfo.Threshold=Info
log4j.appender.smsinfo.ImmediateFlush=true
log4j.appender.smsinfo.Append=true  
log4j.appender.smsinfo.File=d\:\\log4j\\sms.log
log4j.appender.smsinfo.DatePattern='.'yyyy-MM-dd
log4j.appender.smsinfo.layout=org.apache.log4j.PatternLayout
log4j.appender.smsinfo.layout.ConversionPattern=%d [%p] [%c] - %m%n
   
log4j.logger.emailinfo = info,emailinfo 
log4j.appender.emailinfo = org.apache.log4j.DailyRollingFileAppender
log4j.appender.emailinfo.Append=true 
log4j.appender.emailinfo.Threshold=INFO
log4j.appender.emailinfo.layout=org.apache.log4j.PatternLayout 
log4j.appender.emailinfo.layout.ConversionPattern=%d [%p] [%c] - %m%n
log4j.appender.emailinfo.File=d\:\\log4j\\user.log
log4j.appender.emailinfo.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.emailinfo.ImmediateFlush=true
java中调用用 Logger.getLogger(名字);

	public static Logger smsLogger = Logger.getLogger("smsinfo");
	public static Logger emailLogger = Logger.getLogger("emailinfo");
使用这些写的日志就会分文件存储,唯一不好的一点就是没法定位代码行,像这样的:
2016-12-16 12:37:26,139 [INFO] [emailinfo] - emailLogger info:0
2016-12-16 12:37:26,139 [INFO] [smsinfo] - smsLogger info:0
2016-12-16 12:37:26,139 [WARN] [smsinfo] - smsLogger warn:0
2016-12-16 12:37:26,139 [ERROR] [emailinfo] - emailLogger error:0
或者还是有地方没有配对 这样的配置 会不会影响效率就不知道了 感谢提供的思路 绕了这么大一圈,还是因为不扎实啊
引用 1 楼 u010427387 的回复:
自己造轮子是什么意思? 你可以自定义实现log4j接口Appender
qq_24416953 2016-12-15
  • 打赏
  • 举报
回复
引用 4 楼 u010427387 的回复:
对你有帮助就好,能否分享下自定义的代码

可以的 代码很乱 只测功能 隔日创建文件不知道的功能也不知道有没有被影响 还没测
http://download.csdn.net/detail/qq_24416953/9712211
我打了包放这里了
项目结构:

感觉用xml配置方式的好控制一点,虽然一直都用的properties文件
瞳孔里的阳光 2016-12-15
  • 打赏
  • 举报
回复
对你有帮助就好,能否分享下自定义的代码
qq_24416953 2016-12-15
  • 打赏
  • 举报
回复
引用 1 楼 u010427387 的回复:
自己造轮子是什么意思? 你可以自定义实现log4j接口Appender
感谢, 我用log4j的DailyRollingFileAppender源码修改一个MyDailyRollingFileAppender的类 用消息体内容后缀来指定文件 初步实现可以分文件存储,至于可靠性就不知道了
qq_24416953 2016-12-14
  • 打赏
  • 举报
回复
引用 1 楼 u010427387 的回复:
自己造轮子是什么意思? 你可以自定义实现log4j接口Appender
这里的自己造轮子是指自己用流或者存数据库 自己定义实现Log4j的接口这个应该管用,哈哈 我去试试 有什么资料或者例子就更好了
瞳孔里的阳光 2016-12-14
  • 打赏
  • 举报
回复
自己造轮子是什么意思? 你可以自定义实现log4j接口Appender

50,550

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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