`
liyixing1
  • 浏览: 957314 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

layout

阅读更多
抽象类Layout
public abstract class Layout implements OptionHandler {
// Derived classes need to implement their own formatting strategy.
abstract public String format(LoggingEvent event);
public String getContentType() { return "text/plain"; }
public String getHeader() { return null; }
public String getFooter() { return null; }
abstract public boolean ignoresThrowable();
}

PatternLayout
它和C语言的printf方法非常类似。格式转换由普通字符和转换字符组合而成。转换字符由%开始,紧跟着的是可选的格式修饰符和转换字符标示。使用%前缀的表示符号将被转换到实际的内容。如name, level, date, thread name.



例子

/**
*

* @author liyixing liyixing1@yahoo.com.cn
* @version 1.0
* @since 2011-7-10 下午11:16:54
*/

package com.cgodo.log4j.test;

import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;

/**
*
* @author liyixing liyixing1@yahoo.com.cn
* @version 1.0
* @since 2011-7-10 下午11:16:54
*/

public class LayoutTest {

/**
* 描述:
*
* @param args
* @author liyixing 2011-7-10
*/

public static void main(String[] args) {
Logger rootLogger = Logger.getRootLogger();
PatternLayout layout = new PatternLayout("%-5p [%t]: %m%n");
ConsoleAppender appender = new ConsoleAppender(layout);
rootLogger.addAppender(appender);
rootLogger.setLevel(Level.DEBUG);
rootLogger.debug("Message 1");
rootLogger.warn("Message 2");
}
}

在上面的格式%-5p [%t]: %m%n中,并没有明确的分隔转换字符和普通文本的字符存在。PatternLayout能自己区分普通文本和转换字符。其中%-5p是日志的调用级别。事件是左对齐的,5个字符宽度。

可用的转换符是
转换符描述
c调用日志事件的所在记录器的名字,如一个logger的名字是my.test.bbb.ccc,调用的是WARN级别的日志输出,那么输出的是输出my.test.bbb.ccc,可以在其右边指定了精度,如%c{2}那么输出的是bbb.ccc
C调用日志事件的所在的类名,如我在com.cgodo.log4j.test.LayoutTest类中调用,输出的是com.cgodo.log4j.test.LayoutTest,和c转换符一样,可以在右边指定宽度,如%C{2}输出%C{2}
d日志调用所发生的时间,日期格式在其后跟着的大括号内的格式指定如%d{yyyy-MM-dd HH:mm:ss},我现在输出的结果是2011-07-11 21:05:22,推荐使用的是log4j本身提供的日期格式,如%d{ISO8601},%d{ABSOLUTE},%d{DATE}
F所处所在文件名,如上面说C转换符的例子,输出结果是LayoutTest.java
l是的日志事件发生的位置信息,这个和虚拟机的实现有点关系,一般境况下能得到类,方法,行数源文件等信息,如我在com.cgodo.log4j.test.LayoutTest中的输出结果就是com.cgodo.log4j.test.LayoutTest.main(LayoutTest.java:38),为了输出这个信息,会比较影响性能。
L只是输出触发日志事件代码所在的行号,性能损耗会小很多。
m显示应用给日志提供的其他信息,如消息。rootLogger.warn("Message 2");那么%m将得到的是Message 2
M输出调用者所在的方法名
n换行,和\r \r\n有相同功能,能识别系统的换行符,自动转换成\r或者\r\n,log4j推荐使用这个转换符,而不是\r或者\r\n
p输出调用的日志的级别,如我是调用logger.debug方法,那么级别就是debug
r输出自应用启动后第一次调用logger的日志输出方法,到输出该log信息耗费的毫秒数
t输出所在线程的名字
x暂时不知道,Outputs the NDC (nested diagnostic context) associated with thethread that generated the logging event. The NDC will be discussedin Chapter 7.
XOutputs the MDC (mapped diagnostic context) associated with thethread that generated the logging event. The X conversion charactermust be followed by a key placed between braces, as in%X{clientNumber} where clientNumber is the key. The correspondingvalue in the MDC will be output. The MDC will be discussedin Chapter 7.
%写上%%后将直接输出一个%符号


关于C, F, l, L, and M几个的使用,会影响到性能,没必要过于使用。


格式修饰符
放在%和转换符之间。
第一个可选的格式修饰符是左对齐(-)。
第二个可选的格式修饰符是字段最小宽度。一个整数。表示输出的最小字符数。如果数据未达到指定最小大小,那么它将以左填充(默认)或者右填充方式(左对齐情况下只能使用右填充了)。用空格填充,直到达到最小宽度。如果大于指定最小宽度,不会被截断
当然可以指定最大字符数,使用.符号加数字表示最大字符数。如果大于指定长度,多余的字符会被删除。它是从前面删除,而不是从后面删除的。如最大字符是8个,数据有10个字符,那么前面两个字符会被删除。

%20c 右对齐,最少20字符,没有左边用空格填充
%-20c 左对齐,最少20字符,没有右边用空格填充
%.30c 右对齐,最多30字符,超过左边的截取掉
%20.30c 右对齐,最少20字符,最多30字符,填充或截取规则略
%-20.30c 左对齐,最少20字符,最多30字符,填充或截取规则略


XMLLayout
以XML方式进行布局,详情看log4j manual

HTMLLayout
以HTML方式进行布局.
以固定格式表格输出事件。表格包含事件,事件,等级,logger和消息。

属性
LocationInfo boolean true则输出日志发生的位置信息,如果打开会多出一列File:Line。默认false。
Title String html文件的标题。
分享到:
评论

相关推荐

    swing-layout-1.0.3

    swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...

    layout.js布局插件

    《layout.js布局插件:网页快速布局的利器》 在网页设计与开发中,布局是至关重要的一步,它直接影响到用户的浏览体验和信息传递的效率。layout.js布局插件应运而生,专为实现网页的高效、灵活布局提供了解决方案。...

    Layoutit bootStrap3

    Layoutit BootStrap3是基于此框架的一个在线布局工具,它提供了一个直观的拖拽界面,帮助开发者无需编写代码就能设计出复杂的Bootstrap页面布局。 Bootstrap3的核心组件包括网格系统、表单、按钮、导航、下拉菜单、...

    USB3.0 Layout 指南

    为了充分利用USB3.0的高速传输性能,硬件设计至关重要,因此本文将详细介绍USB3.0 Layout设计的关键要点。 首先,USB3.0 Layout设计中需要考虑到电源系统的设计。USB3.0设备的电源设计要求具有良好的去耦设计,以...

    HFSS 3D Layout用户手册

    HFSS 3D Layout是一款由ANSYS公司推出的三维电磁场仿真软件,特别针对印刷电路板(PCB)和封装仿真设计。该软件继承了HFSS的有限元仿真算法内核,提供了一个以EDA风格设计的界面和仿真流程,以便于PCB和封装领域的...

    音频Layout设计规范.pdf

    根据提供的文件信息,我们来详细探讨音频Layout设计规范,这个规范主要涉及音频原理图、元器件布局以及PCB走线三个方面。这些内容是音频设计中的核心,每一个环节都对最终的音频质量有着直接的影响。 首先,音频...

    Sprint-Layout60 绝对好用

    《Sprint-Layout60:高效布局解决方案》 在软件开发过程中,界面设计与布局管理是至关重要的环节,它直接影响到用户体验和程序的可维护性。Sprint-Layout60,作为一个优秀的布局管理工具,凭借其高效、易用的特点,...

    抄板软件Sprint-Layout 6.0 完整版.zip

    [Windows] 搞电子的福音,抄板软件Sprint-Layout 软件简介】  Sprint-Layout 是一种PCB画板/抄板DIY软件,比AD和protel简单易用。  软件由 tplin 根据 Sprint-Layout 6.0 德文20140310注册版汉化修改,绿色版...

    Android 五种Layout 布局

    在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了屏幕上各个组件的排列方式和相互关系。本文将深入探讨Android的五种主要布局:LinearLayout、RelativeLayout、FrameLayout、GridLayout以及...

    使用vue实现grid-layout功能实例代码

    使用 Vue 实现 Grid Layout 功能实例代码 本文主要介绍了使用 Vue 实现 Grid Layout 功能的代码讲解,涵盖了基本布局、节点排版、拖拽事件等多个方面的知识点。 基本布局 在实现 Grid Layout 功能之前,首先需要 ...

    pads-layout与router同步操作

    PADS Layout是其设计环节中用于进行电路板布局的部分,而Router则是用于布线的组件。在PCB设计中,布局和布线是前后相续的两个重要步骤,两者之间的同步操作对于提高设计效率和减少错误有着重要意义。 在PADS V9.3...

    jquery layout 经典布局(东南西北中)

    **jQuery Layout:经典布局策略详解** 在Web开发中,页面布局设计是至关重要的,它决定了用户的交互体验和视觉效果。jQuery Layout 是一个强大的基于jQuery的布局框架,它为开发者提供了灵活且可定制化的布局解决...

    Layout 6.0 绿色汉化完整版

    Layout 6.0是一款专为电子爱好者和工程师设计的专业PCB(印刷电路板)设计软件。这个绿色汉化完整版确保了用户可以在中国语言环境下轻松使用,无需安装,且已经过汉化处理,使得国内用户在理解和操作上更加便捷。 ...

    关于layoutcontrol里面添加控件排版的属性.docx

    ### 关于DevExpress LayoutControl 控件排版属性详解 DevExpress 是一款功能强大且广泛应用于Windows Forms、WPF 和 ASP.NET 平台的控件库。它提供了丰富的控件和工具,帮助开发者快速创建高质量的应用程序。其中,...

    PADS-LAYOUT高级应用(ECO对比)

    "PADS-LAYOUT高级应用(ECO对比)" PADS LAYOUT 高级应用系列教程旨在为电子工程师和PCB设计工程师提供一个详细的学习资源,涵盖了PADS LAYOUT的高级应用知识点。以下是本篇教程的知识点摘要: 1. PADS LAYOUT 高级...

    DDR3-硬件设计和-Layout-设计官方设计参考资料.pdf

    "DDR3 硬件设计和 Layout 设计官方设计参考资料" DDR3 硬件设计和 Layout 设计是指在设计 DDR3 SDRAM 存储器接口时,需要考虑的硬件设计和布局设计因素。该文档提供了详细的设计向导和 Layout 建议,旨在帮助系统/...

    HFSS 3D Layout用户手册v1.1.pdf

    HFSS 3D Layout是一款由ANSYS公司推出的三维电磁场仿真工具,专门用于印刷电路板(PCB)和封装的电磁仿真。它基于业界领先的HFSS软件的有限元算法内核,同时提供了符合电子设计自动化(EDA)风格的操作界面和仿真设置...

    jQuery界面布局插件【UI.Layout】1.2.0 和 1.3.0

    **jQuery UI Layout 插件详解** jQuery UI Layout 是一个强大的前端布局工具,它允许开发者创建复杂的、响应式的页面布局。这个插件通过简单的配置就能实现多面板、分隔的界面,使得网页内容能够灵活地组织和调整。...

    使用Vue-Grid-Layout实现自定义工作台

    Vue-Grid-Layout 是一个基于 Vue.js 的响应式栅格布局系统,它允许开发者创建自定义的工作台,用户可以根据需要自由调整各个组件的位置和大小。在本教程中,我们将深入探讨如何使用 Vue-Grid-Layout 实现自定义工作...

Global site tag (gtag.js) - Google Analytics