public static void main(String[] args) {

        Logger logger=Logger.getLogger(Appendable.class);
//设置输出等级
logger.setLevel(Level.INFO);
//设置输出端
ConsoleAppender appender=null; /**
* 2)org.apache.log4j.SimpleLayout,输出的信息为:
* 1:日志事件的优先级,即DEBUG,INFO,WARN,ERROR
* 2:代码中指定的消息
*/
//SimpleLayout layout=new SimpleLayout(); /**
* 1)org.apache.log4j.HTMLLayout ,以HTML表格形式布局,输出的信息为:
* 1:从layout(布局)的构建到日志事件创建所经过的毫秒数
* 2:生成该日志事件的线程的名称
* 3:日志事件的优先级,即DEBUG,INFO,WARN,ERROR
* 4:日志事件的category(类别),通常就是所在类的全名
* 5:代码中指定的消息
*/
//HTMLLayout layout = new HTMLLayout(); /**
* 3)org.apache.log4j.TTCCLayout,输出的信息为:
* 1:从layout(布局)的构建到日志事件创建所经过的毫秒数
* 2:生成该日志事件的线程的名称
* 3:日志事件的优先级,即DEBUG,INFO,WARN,ERROR
* 4:日志事件的category(类别),通常就是所在类的全名
* 5:代码中指定的消息
*/
TTCCLayout layout = new TTCCLayout(); /**
* 4)org.apache.log4j.PatternLayout(可以灵活地指定布局模式),这是实际工作中我们最常用的一种,
* 输出的信息是自定义的,比如:下面的设置 (前面的笔记已经有了例子,不再重复)
*/ //目的地
appender=new ConsoleAppender(layout); logger.addAppender(appender);
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
logger.fatal("fatal");
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Log4J Log Messages</title>
<style type="text/css">
<!--
body, table {font-family: arial,sans-serif; font-size: x-small;}
th {background: #336699; color: #FFFFFF; text-align: left;}
-->
</style>
</head>
<body bgcolor="#FFFFFF" topmargin="6" leftmargin="6">
<hr size="1" noshade>
Log session start time Sun Jun 03 21:05:28 CST 2018<br>
<br>
<table cellspacing="0" cellpadding="4" border="1" bordercolor="#224466" width="100%">
<tr>
<th>Time</th>
<th>Thread</th>
<th>Level</th>
<th>Category</th>
<th>Message</th>
</tr> <tr>
<td>0</td>
<td title="main thread">main</td>
<td title="Level">INFO</td>
<td title="java.lang.Appendable category">java.lang.Appendable</td>
<td title="Message">info</td>
</tr> <tr>
<td>20</td>
<td title="main thread">main</td>
<td title="Level"><font color="#993300"><strong>WARN</strong></font></td>
<td title="java.lang.Appendable category">java.lang.Appendable</td>
<td title="Message">warn</td>
</tr> <tr>
<td>20</td>
<td title="main thread">main</td>
<td title="Level"><font color="#993300"><strong>ERROR</strong></font></td>
<td title="java.lang.Appendable category">java.lang.Appendable</td>
<td title="Message">error</td>
</tr> <tr>
<td>21</td>
<td title="main thread">main</td>
<td title="Level"><font color="#993300"><strong>FATAL</strong></font></td>
<td title="java.lang.Appendable category">java.lang.Appendable</td>
<td title="Message">fatal</td>
</tr>

result html

INFO - info
WARN - warn
ERROR - error
FATAL - fatal

simple result

8 [main] INFO java.lang.Appendable - info
9 [main] WARN java.lang.Appendable - warn
9 [main] ERROR java.lang.Appendable - error
9 [main] FATAL java.lang.Appendable - fatal

result

浅谈log4j-3-不同输出样式的更多相关文章

  1. 浅谈Log4j和Log4j2的区别

    相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程.我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代. log4j是Apache的 ...

  2. 浅谈Log4j

    1 什么是Log4j Log4j 是Apache为Java提供的日志管理工具.为了你快速理解Log4j的作用,我们用下面的代码说明Log4j的作用.我们为了调试程序,总是需要在程序使用System.o ...

  3. 浅谈datagrid详细操作单元格样式

    http://www.easyui.info/archives/470.html 今天有朋友问到:“如果设置列标题居中而列内容居右显示?”,仔细查了一下api,目前版本提供了两个相关的列属性,alig ...

  4. 浅谈js for循环输出i为同一值的问题(闭包解决)

    1.最近开发中遇到一个问题,为什么每次输出都是5,而不是点击每个p,就alert出对应的1,2,3,4,5. <html> <head> <meta http-equiv ...

  5. 浅谈js for循环输出i为同一值的问题

    问题再现 ​ 最近开发中遇到一个问题,为什么每次输出都是5,而不是点击每个p,就alert出对应的1,2,3,4,5. <html> <head> <meta http- ...

  6. 浅谈Hybrid技术的设计与实现第三弹——落地篇

    前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...

  7. 浅谈php生成静态页面

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

  8. 浅谈iOS视频开发

     浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...

  9. .net中对象序列化技术浅谈

    .net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储 ...

随机推荐

  1. 【oracle】一些的常用命令

    命令行连接oracle sqlplus  回车 分别输入用户名和密码 命令行重启oracle数据库 sqlplus /nolog conn 账号/密码 as sysdba shutdow immedi ...

  2. javascript进阶笔记(1)

    学习js已经有一段时间了,大大小小还是能够做出一些东西来.不过觉得可惜的是,还是对js本身这门语言不是很熟悉,总有一点雾里看花的感觉,看得见,但是看不清楚.最近发现有一本关于js的叫做<忍者秘籍 ...

  3. RTTI,C++类型转换操作符

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  4. 乘法“*”和点乘“.*”&除法“/”和点除“./”区别

    reference:https://blog.csdn.net/xiaotao_1/article/details/79026406 一,*和.*的联系和区别.  1,在进行数值运行和数值乘矩阵,这两 ...

  5. ln -s 软连接

    创建软连接 ln -s 我们通过实例查看ls的路径发现,在/tmp/目录下的/bin/ls指向的是/usr/bin/ls,所以这里/tmp/bin/ls所存储的就是一个绝对路径,我们可以看做是一个软链 ...

  6. Ansible-playbook的简单使用 [转]

    一. 介绍 ansbile-playbook是一系列ansible命令的集合,利用yaml 语言编写.playbook命令根据自上而下的顺序依次执行.同时,playbook开创了很多特性,它可以允许你 ...

  7. day 57 data 插件 表的增删改查

    一 data的含义 在匹配的元素集合中的所有元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值.      1 .data(key, value):     描述:在匹配 ...

  8. dos命令:系统命令

    系统命令 一.mode命令 1.介绍 配置系统设备. 2.语法 串行端口: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [to=on|off] ...

  9. 【Python】多进程1

    1.    进程定义: (1) 进程是一个实体.每个进程都有他自己的地址空间,一般包括文本区域.数据区域和堆栈.进程是线程的容器. (2) 进程是一个“执行中的程序” 2.    进程的特征: (1) ...

  10. NSCTF2015 逆向第五题分析

    这道题目我没有写出Exploit,因为编码时候里面几个细节处理出错.但对程序的逆向分析已完成,这里就学习一下别人写Exploit的思路.主要参考:绿盟科技网络攻防赛资料下载 0x01 题目要求 题目要 ...