69. XPages里的Java日志器

本文档介绍了如何在XPages环境中使用Java实现日志功能。作者基于Lotus Notes平台的特性,简化了Log4J和java.util.logging,创建了NotesLogger类,直接将日志写入Notes文档。通过示例展示了如何在XPage的按钮事件中调用该日志器,以及如何在managed bean中初始化和使用共享的日志器,简化了日志记录的步骤。
摘要由CSDN通过智能技术生成
48. 面向对象的LotusScript(十四)之Log4Dom上49. 面向对象的LotusScript(十五)之Log4Dom下笔者介绍了一个简单实用的日志记录模块,代码用LotusScript写成,在Lotus Notes传统的客户端和web应用程序里都可以使用。在XPages开发里,需要可在SSJS或Java里使用的日志功能。用Java开发时,有很多现成的日志框架,比如Log4J和JDK自带的java.util.logging包。但是这些框架包含日志器层次(logger hierarchy)、过滤器(filter)、记录器(handler)和格式器(formatter)等特性,对于Lotus Notes平台上的开发来说过于复杂。Lotus Notes的环境有特殊性,现成和方便的记录日志的载体就是Notes文档,所以笔者在借鉴了OpenNTF上的Log4Dom项目后,编写了满足典型的Lotus Notes里日志需求的Java类NotesLogger。(与Log4Dom的Java版本比较,NotesLogger放弃了Log4J的可配制记录器的架构,直接将日志写入唯一的载体——指定Notes数据库的文档;更正了bug;简化了使用方法;减少了类的数量;调整了方法的名称和签名。)记录日志的文档使用的表单和视图与LotusScript的Log4Dom一样。下面就是在一个XPage的按钮里分别用xp:eventHandler的action和actionListener属性触发managed bean里的两个测试方法,分成两条日志文档。
	<xp:button value="Test eventHandler action" id="button1">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" action="#{bean.testAction}">
		</xp:eventHandler>
	</xp:button>
	<xp:button value="Test eventHandler actionListener" id="button2">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" actionListener="#{bean.testActionListener}">
		</xp:eventHandler>
	</xp:button>	
注意两处绑定使用的都是表达式语言,并且XPages继承自JSF,分别可以使用action和actionListener/actionListeners绑定两种签名不同的方法。action属性绑定的方法须为managed bean的公开方法,无参数且返回一个字符串;actionListener/actionListeners绑定的方法同样须为公开方法,但接受一个类型为javax.faces.event.ActionEvent的参数且返回类型为void。
    public void testActionListener(ActionEvent ae) throws NotesException{
        NotesLogger logger=new NotesLogger(XSPUtil.getSession());
        logger.setLogName("test actionListener from bean");
        logger.info(ae);
        log
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值