为什么要使用日志?

开发阶段:

发现程序的问题,排错

产品阶段:

记录程序运行状态

System.out.println()的局限性

不能在运行时打开或者关闭

不能选择包或者类,在运行的的时候打开或者关闭

输出的信息没有分级

只能输出文本信息

不能改变输出的位置

Log4j可以解决以上的问题!

hibernate内置log4j,记录日志信息

log4j官方网址:

下载得到:

log4j-1.2.15.jar

log4j.properties

把下载得到来的文件路径添加到当前项目的Build Path下

log4j的基本用法:

新建java project项目:

build Path: log4j-1.2.15.jar

Example.java

import org.apache.log4j.Logger;

public class Examlpe{

private static Logger logger=Logger.getLogger(Example.class);

public static voie main(String[] args){

logger.debug("In the main method ");

logger.ingo("Welcome come to http://www.cnblogs.com/hongten ");

logger.error("This is an error message");

}

}

运行这个例子的时候需要log4.properties配置文件

通过这个配置文件,我们就可以设置日志输出的格式,也就是外观

还可以设置这个日志信息输出到那里去,是到终端,还是到物理文件。

还可以记录日志的详细的样式

在src目录下:

log4j.propreties

代码:

设置终端输出日志信息:

--------------log4j的输出级别为debug:debug,appender1,当然还可以是info,error,他们的级别是debug

--------------如:现在是debug:debug.appender1,则debug,info,error都会输出-----------------

--------------如:现在是info:into.appender1,则info,error会输出-----------------

--------------如:现在是error:error.appender1,则error会输出-----------------

log4j.rootLogger=debug,appender1

--------------日志信息到终端输出-----------------

log4j.appender.appender1=org.apache.log4j.ConsoleAppender

--------------终端输出的样式-----------------

log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

设置保存日志信息的路径:

log4j.rootLogger=debug,appender1

--------------日志信息到终端输出-----------------

log4j.appender.appender1=org.apache.log4j.FileAppender

--------------日志信息保存在c:/demolog4j.log中-----------------

log4j.appender.appender1.File=c:/demolog4j.log

--------------终端输出的样式-----------------

log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

设置保存日志信息的路径和保存的格式为html格式:

log4j.rootLogger=debug,appender1

--------------日志信息到终端输出-----------------

log4j.appender.appender1=org.apache.log4j.FileAppender

--------------日志信息保存在c:/demolog4j.log中-----------------

log4j.appender.appender1.File=c:/demolog4j.htm

--------------终端输出的样式-----------------

log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout

log4j核心

Logger

Logger完成日志信息的处理,可以分成不同的级别记录日志信息,如:debug,info,error

Logger可以定义输出的层次和决定信息是否输出

Logger输出的信息是有优先级别的: ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF------级别由小到大

常用的有:DEBUG,INFO,WARN,ERROR

Appender

Appender设置日志信息的去向  如:一个文件中,*.log,*.htm等。或者说是数据库中

Appender就是设置日志讯息输出到那个地方,可以同时指定多个输出目的地:

log4j.rootLogger=debug,appender1,appender2

log4j.appender.appender1=org.apache.log4j.ConsoleAppender

log4j.appender.appender2=org.apache.log4j.ConsoleAppender

---------------------------------------------------------------------------------

常用的Appender:

org.apache.log4j.ConsoleAppender(控制台)

ogr.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

org.apache.log4j.RollingFileAppender(文件大小达到指定尺寸的时候产生一个新的文件)

org.apache.log4j.WiterAppender(将日志讯息一串流格式发送到任意指定的地方)

org.apache.log4j.JDBCAppender(将日志讯息保存到数据库中)

org.apache.log4j.SMTPAppender(将日志信息以邮件的方式发送到指定的地方)

---------------------------------------------------------------------------------

Layout

Layout设置日志信息的输出样式

---------------------------------------------------------------------------------

Layout提供的layout的方式:

org.apache.log4j.HTMLLayout(一HTML表格形式布局)

org.apache.log4j.SimpleLayout(包含日志讯息的级别和讯息字符串)

org.apache.log4j.TTCCLayout(包含日志产生时间,执行者,类别等讯息)

org.apache.log4j.PatternLayout(可以灵活的指定布局模式)

---------------------------------------------------------------------------------

org.apache.log4j.PatternLayout(可以灵活的指定布局模式)

定制所输出的日志信息的样式:

%p  输出优先级别:DEBUG,INFO,WARN,ERROR,FATAL

%r   输出字应用启动到输出该日志讯息所耗时秒数

%t   输出产生该日志事件的线程名

%f 输出日志讯息所属的类别的类别名

%c 输出日志讯息所属的类的全名

%d   输出日志时间点的日期或时间

%d{yyyy-MM-dd HH:mm:ss} 指定日期或时间格式

%l 输出日志时间发生的位置,即输出日志讯息的语句处于他所在的类别的第几行

%m  输出代码中指定的讯息

%n  输出一个换行符号

例子:

log4j.properties

log4j.rootLogger=debug,appender1

log4j.appender.appender1=org.apache.log4j.ConsoleAppender

log4j.appender.appender1.layout=org.apache.log4j.PatternLayout

log4j.appender.appender1.layout.ConversionPattern=%r  [%t]    %p - %c - %l - %m%n

例子二:

log4j.rootLogger=debug,appender1,appender2

log4j.appender.appender1=org.apache.log4j.ConsoleAppender

log4j.appender.appender1.layout=org.apache.log4j.PatternLayout

log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%c] %m%n

log4j.appender.appender2=org.apache.log4j.FileAppender

log4j.appender.appender2.layout=org.apache.log4j.PatternLayout

log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss}][%c] %m%n

log4j.appender.appender2.File=C:/HongtenLog4j.log

---------------------------------------------------------------------------------

配置文件

log4j.properties

log4j.xml

---------------------------------------------------------------------------------

log4j.xml

代码:

---------------------------------------------------------------------------------

关于性能影响

Log4j对程序的运行的性能影响非常小

还可以通过以下的方式,降低性能影响:

if(logger.idDebugEnabled()){

logger.debug("x="+longRunning());

}

log日志java web_Java Web log4j (日志)相关推荐

  1. java自定义日志级别_自定义log4j日志级别

    因为项目中需要输出一些特别的日志来做数据统计.如果开启log4j提供的INFO日志级别,每天生成的日志文件就会变得越来越大.这样就得写个定 时任务来删除这个文件.为了只输出所需的日志级别,唯有自己定义 ...

  2. log4j中调试与错误日志分开_idea中log4j日志插件报错

    visual studio code权威指南计算机 65.34元 包邮 (需用券) 去购买 > idea中log4j日志插件报错 在运行测试代码的时候,出现以下错误! 在 src/ main / ...

  3. linux日志文件存放目录,Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一.场景和需求 假设我现在有3个独立的用project(暂时用maven关联起 ...

  4. cad java web_Java Web的演变:大魏Java记3

    一.从Java到Tomcat 我们知道,Java分为JavaME(这个主要是做一些嵌入式的程序,我们不关注),JavaSE,JavaEE三大类.JavaSE和JavaEE的区别如下图所示,我们可以得出 ...

  5. python分析服务器日志_python实现web服务器日志分析脚本

    python日志分析脚本 用python可以实现大日志文件的分析,比如查到sql注入语句,然后看到IP,就可以改下脚本,用IP为特征取出日志,分析入侵过程. python比较shell脚本的优点是速度 ...

  6. WebLogic 12C服务器无法打印log4j日志问题,与log4j日志动态打印记录

    环境 windows 服务器 weblogic 12C 日志 log4j或log4j2 叙述: 项目打印日志,要求需要用到log4j或log4j2,服务器用weblogic 12c,同时实现动态打印( ...

  7. filter java web_java web filter 之一 基础实现

    本文主要对filter的基本使用进行了讲解,其中涉及到了 filter是什么 Filter 是java下的一种过滤器 ,能实现对java web程序 客户端和服务器端消息的过滤,也就是在服务器段接受r ...

  8. app访问java web_Java Web App体系结构

    app访问java web 我曾经利用Servlet,JSP,JAX-RS,Spring框架,Play框架,带有Facelets的JSF和一些Spark框架. 以我的拙见,所有这些解决方案都远非面向对 ...

  9. bootstrap java web_Java web MVC(jsp,servlet,dao)+Bootstrap购物网站开发经验总结 (持续更新)...

    一开始对java web 不是很熟悉,重新温习了java web ,对El expression ,jstl的使用有了更加深的印象,mvc模式下的分层结构有了进一步的了解. MVC中的M就是model ...

  10. 仿天猫 java web_JAVA WEB项目教程-模仿天猫J2EE版

    做一个模仿个天猫官网的J2EE项目,来练手吧 1. 项目演示地址 2. 学习思路 其实呢,要在网上找一个J2EE项目是很容易的,随便在百度或者git搜索,都是一大把. 但是拿到这样的搜索来的J2EE项 ...

最新文章

  1. 深入卷积神经网络背后的数学原理
  2. 016_SpringBoot整合MyBatis
  3. Ext学习笔记02 - 构造方法,类继承,类实例方法重写
  4. 台达plc自由口通讯_【台达PLC详解】附PLC功能总简介~
  5. Win32 网络编程基本函数
  6. 腐蚀单机服务器怎么不稳定,腐蚀有什么指令?基本指令及服务器指令汇总
  7. char强制类型转换为int_常量、变量、基本数据类型转换、和运算符
  8. 深入理解JVM虚拟机读书笔记——运行时数据区
  9. 谷歌FLASH无法添加保存网站
  10. 使用SQLite Developer可视化解析sqlite数据库文件
  11. 计算机如何磁盘整理,如何整理磁盘碎片让Win7电脑运行更快?
  12. 斗地主洗牌发牌——排序版
  13. 图文识别(一):验证码识别---中、英文、数字混合的单行文字识别等
  14. oracle10G安装与配置
  15. HTML5基础教程(21)Audio(音频)
  16. UE4 循环滚动Led效果材质
  17. DJI的核心竞争力是什么?
  18. Under the hood: MySQL Pool Scanner (MPS)
  19. 江西自考 计算机及应用,江西自考专科本科计算机抵免政策解读
  20. 云服务案例分析 BB平台 Quiz3

热门文章

  1. mobilenet cpu 加速_AMD锐龙5000系列CPU价格公布 哪款才是性价比之王_搜狐汽车
  2. 可管理多台远程mysql服务器的phpmyadmin_修改phpMyAdmin使其能够管理多台远程MySQL服务器...
  3. 曼彻斯特编码_网络工程师考点集锦(数字编码和编码效率)
  4. java rni_Java面试总结
  5. (11)Redis------分布式锁的实现方式之一(基于Springboot项目搭建)
  6. JZOJ 4230. 淬炼神体
  7. fis 前端构建工具
  8. Mysql中索引的 创建,查看,删除,修改
  9. 2017年7月19日晚作业
  10. 68.vivado与modelsim的关联以及器件库编译