Log4J 日志管理系统使用心得体会

Log4J 日志管理系统使用心得体会,第1张

简单的Log j使用只需要导入下面的包就可以了// import log j packagesimport apache log j Logger然后你需要在类的开头写上下面一句private final static Logger log =Logger getLogger(ClassName class)//注意这里写的是当前类的类名 这样你就有了一个日志对象叫做 log 这个log有以下集中用法()//一般信息log debug()//调试信息log error()//错误信息log warn()//警告信息log fatal()//致命错误信息上面列出的就是所谓log j的输出级别 log j建议只使用 个级别 它们从上到下分别为ERROR WARN INFO DEBUG 假设你定义的级别是info 那么error和warn的日志可以显示而比他低的debug信息就不显示了 知道了上面的内容还不够 要想很好的使用log j你还需要配置log j的环境 因为每个log都可以通过配置它的属性文件来达到控制日志输出的格式的目的 下面我给出一个在weblogic下使用log j的配置过程 首先给出这个配置文件的完整信息 #log j rootLogger=INFO A R //这一句指定了日志输出的级别为info A 和R分别代表日志输出到什么地方 log j category hybl_wshabcm=debug A R //这一句指定了日志具体输出哪个包的信息 以及输出位置log j appender A = apache log j ConsoleAppender //这里指定了日志输出的第一个位置A 是控制台ConsoleAppender/**其中 Log j提供的appender有以下几种 * apache log j ConsoleAppender(控制台) * apache log j FileAppender(文件) * apache log j DailyRollingFileAppender(每天产生一个日志文件) * apache log j RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) * apache log j WriterAppender(将日志信息以流格式发送到任意指定的地方)**/log j appender A layout= apache log j PatternLayout //指定A 的布局模式/**其中 Log j提供的layout有以下几种 × apache log j HTMLLayout(以HTML表格形式布局) * apache log j PatternLayout(可以灵活地指定布局模式) * apache log j SimpleLayout(包含日志信息的级别和信息字符串) * apache log j TTCCLayout(包含日志产生的时间 线程 类别等等信息)*/log j appender A layout ConversionPattern=% d{yyyy MM dd HH:mm:ss SSS} [%c] [%p] %m%n //指定日志的输出格式log j appender R= apache log j RollingFileAppender //指定以文件的方式输出日志log j appender R File=c:/l //文件位置log j appender R MaxFileSize= KB //文件最大尺寸log j appender R MaxBackupIndex= //备份数log j appender R layout= apache log j HTMLLayout //文件的格式为Html格式#log j appender R layout= apache log j PatternLayout log j appender R layout ConversionPattern=%d{yyyy MM dd HH:mm:ss SSS} [%t] [%c] [%p] %m%n有了上面的这个文件我们还要在weblogic启动的时候通过一个类加载这个文件 可以使用下面的方式 加载配置文件的Servlet package hybl_wshabcm serveletimport java io Fileimport java io LineNumberReaderimport java io FileReaderimport java io FileNotFoundExceptionimport java io IOExceptionimport java util Vectorimport java sql Driverimport java sql DriverManager// import servlet packagesimport javax servlet HttpServletimport javax servlet ServletConfigimport javax servlet ServletException// import log j packagesimport apache log j Loggerimport apache log j PropertyConfiguratorpublic class SetupServlet extends HttpServlet{public void init(ServletConfig config) throws ServletException{super init(config)// first thing to do is to set up the Driver that we might be using// in case of JDBCAppendertry{Driver d =(Driver)(Class forName( gjt mm mysql Driver ) newInstance())DriverManager registerDriver(d)//加载JDBC驱动程序 当准备将日志记录到数据库的时候可以使用}catch(Exception e){ System err println(e)}// next load up the properties//启动时从web xml中获得配置文件的信息String props = config getInitParameter( props )if(props == null || props length() == ||!(new File(props)) isFile()){System err println( ERROR: Cannot read the configuration file + Please check the path of the config init param in web xml )throw new ServletException()}}public void destroy(){super destroy()}} web xml文件的部署 上面的这个Servlet在服务器启动的时候将一些初始化信息加载 那么如何在weblogic启动的时候将这个类也加载呢?看一个例子setup hybl_wshabcm servelet SetupServlet//启动时装载的类 props/WEB INF/log j properties//部署文件的位置 lishixinzhi/Article/program/Java/ky/201311/11169

工作中由于疏忽,在生产环境忘记将日志级别提高导致系统性能下降了90%。

那么我们分别来对比debug级别和info级别对性能的影响。

本地tomcat8.5

java7

jmeter

线程500

思路:

1.log4j的配置文件支持System Property的环境变量的获取,如user home

2.通过ServletContext可以获取到集群中每个server name

3.在不同的server启动时将不同server name的加载到System Property

4.在配置文件中增加一个${WebAppClusterServer}的参数,拼合server_name+logfile_name

5.配置文件的定义:

**************************************************

*logpath=e:/${WebSphereAppHost}_

*log4j.appender.logfile.File=${logpath}test.log

**************************************************


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/348230.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存