`
liyixing1
  • 浏览: 946432 次
  • 性别: 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...

    4G模块天线 射频LAYOUT_应用指导_V2.1.pdf

    射频LAYOUT应用指导 для 4G模块天线 射频LAYOUT应用指导 射频LAYOUT应用指导是移远通信技术有限公司为其客户提供的一份重要的技术文档,旨在帮助客户正确地设计和使用4G模块天线。该指导详细介绍了射频LAYOUT的...

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

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

    Nuxt pages下不同的页面对应layout下的页面布局操作

    有时候我们pages中不同的页面需要不同的个性化布局这时候layout就起作用了 layouts 根目录下的所有文件都属于个性化布局文件,可以在页面组件中利用 layout 属性来引用。 pages文件下组件的layout属性值为layout文件...

    jbcl包(com.borland.jbcl.layout)

    jbcl包(com.borland.jbcl.layout)jbcl包(com.borland.jbcl.layout)jbcl包(com.borland.jbcl.layout)jbcl包(com.borland.jbcl.layout)jbcl包(com.borland.jbcl.layout)jbcl包(com.borland.jbcl.layout)jbcl包...

    androidlayout-marginBottom的值为负数.docx

    为什么有时候像android:layout_marginBottom等变量的赋值为负数? 例如如下代码:  android:orientation="vertical"  android:id="@id/Widget_2X4_frame"  android:layout_width="fill_parent"  android:...

    cadence virtuoso layout pcell

    cadence virtuoso layout pcell Cadence Virtuoso Layout PCell 是一种基于 Cadence Virtuoso 平台的Layout设计工具,用于创建参数化的自定义细胞(PCell)。PCell 可以根据用户的需求进行参数化设置,例如 MOS 管...

    High-Speed Interface Layout Guidelines_Layout_Guide_PCBRULE_Guid

    High Speed Interface layout guide

    USB3.0 Layout 指南

    本文详细介绍 关于 USB3.0 Layout 设计要点,包括原理图、PCB 设计、EMC防护等

    EMC之线路板 Layout 原则

    EMC之线路板Layout原则

    DC-DC PCB layout 指导.docx

    DC-DC PCB Layout 指导 DC-DC PCB 布局是影响 DC-DC 转换器性能的关键因素之一。与 LDO 相比,DC-DC 电路的布局要求更高,因为它具有更高的噪声和更复杂的电路结构。因此,了解 DC-DC 布局的重要性和设计原则是非常...

    Layoutit bootStrap3

    Layoutit bootStrap3 拖拽功能

    Layout基础教程.pdf

    "LayOut基础教程" LayOut 是一个功能强大且易于使用的布局工具,它可以帮助设计者创建包含SketchUp模型的设计演示,传达其设计理念。下面是 LayOut 的一些重要知识点: 1. LayOut 的定义和功能:LayOut 是 ...

    微信小程序 FlexLayout布局 (源码)

    微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小...

    PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28

    PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28PADS9.5 logic&layout菜单显示不全WIN8 WIN10补丁_make_28PADS9.5 logic&layout菜单显示不全WIN8 ...

    windowbuilder中layout介绍

    WindowBuilder 中的 Layout 介绍 WindowBuilder 是一个功能强大的 GUI 构建器,可以帮助开发者快速创建复杂的图形用户界面。Layout 是 WindowBuilder 中的一个重要概念,负责管理 GUI 组件的布局和位置。下面我们将...

    INTEL Embedded IA Board Layout Checking Guide

    Layout of an board based on Intel® Architecture is a very complex task. For the best results, it needs to be done by layout engineers with the help of system engineers and signal integrity engineers ...

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

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

    拆分神器UVLayout的maya内置接口文件

    将下载下来的压缩包解压得到prefs与scripts两个文件夹,把这两文件夹拷贝到我的文档/MAYA/2008下替换掉原来打开的scripts文件夹中的文件(若打不开可以用文本格式打开,)将//Path to UVLayout下面的表达式改为global ...

    Modern Auto Layout.zip

    What's In The Book? How did layout work before Auto Layout? Using autoresizing masks How to subclass UIView and make friends with layoutSubviews ...Layout loops...layout loops...layout loops

Global site tag (gtag.js) - Google Analytics