解析日志文件插入数据库(Java如何设计可以获得高性能)
日志文件格式如下:
<param name="URL"
value="jdbc:mysql://192.168.0.14/ispc?useUnicode=true&characterEncoding=UTF-8" />
<param name="User" value="root" />
<param name="Password" value="admin" />
<layout />
</layout>
<filter value="WARN" />
<param name="levelMax" value="WARN" />
<param name="acceptOnMatch" value="false" />
</filter>
</appender>
其中<param name="BufferSize" value="5" />就是指定多少条缓冲日志写进数据库的,,比如你可以设置100条进数据库
看不出你自己实现的这个appender跟默认的有什么区别。还是不能把业务信息分离。
假设在登陆接口中,要把登陆失败的人的ID,IP写入数据库, log4j能做吗?
// logger.warn(??);//你的方法中这里应该怎样写??
logger.warn(ID + "," + IP)//这样??,插进数据库时怎样把ID, IP分别插进2个字段?
自己写的appender再怎么改也只能拿个%m 啊
log4j中有个MDC也许可以做到分开插,但写一个LOG麻烦多少倍,倒不如自己插数据表
MDC.put("ID", ID);
MDC.put("IP", IP);
logger.warn("login failed"); 18 楼 huanglppp 2008-04-26 日志插入数据库的话是为了方便维护人员来维护....可以直接从数据库查询,而不用去分析log日志了