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. hibernate创建构架

    创建hibernate架构: 注意:需要将所需的架包导进去: 二:Java工程的具体结构: 具体代码如下:hibernate.cfg.xml <!DOCTYPE hibernate-config ...

  2. asp.net中HttpModule扩展的浅析

    在asp.net中,我们可以使用HttpModule扩展自己的相关业务.可以在HttpApplication的19个管道事件中注入我们自己的业务逻辑代码. 闲话不说,代码先上. 一.新建网站项目 我们 ...

  3. VSTO:使用C#开发Excel、Word【5】

    <Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath >——By Eric C ...

  4. nopcommerce 4.1 net core 学习1

    关注nop有2年多, 基本都是下载看看结构, 里面的多语言跟主题模板 插件加载 是我比较喜欢的. 最近看nop4.1版本已经全面替换成了asp.net core 2.1 +ef core2.1,所以专 ...

  5. centos7创建docker tomcat镜像

    1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: 1 # uname -r 2 安装 ...

  6. 矩震级Mw与地震矩M0的换算关系

    矩震级实质上就是用地震矩来描述地震的大小.地震矩是震源的等效双力偶中的一个力偶的力偶矩,是继地震能量后的第二个关于震源定量的特征量,一个描述地震大小的绝对力学量,单位为N.m(牛.米),其表达式为: ...

  7. shell中环境变量

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量. 所以管理环境变量的文件也分为系统级和用户级的, ...

  8. VS2017企业版的密钥

    Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QFVisual Studio 2017(VS2017 ...

  9. C++中数组定义及初始化

    一.一维数组 静态 int array[100]; 定义了数组array,并未对数组进行初始化 静态 int array[100] = {1,2}: 定义并初始化了数组array 动态 int* ar ...

  10. 用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)

    前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过 ...