搜档网
当前位置:搜档网 › log4j WARN No appenders could be found for logger 解决方案

log4j WARN No appenders could be found for logger 解决方案

log4j WARN No appenders could be found for logger 解决方案
log4j WARN No appenders could be found for logger 解决方案

log4j:WARN No appenders could be found for logger解决方案

解决办法:

在src下面新建file名为log4j.properties内容如下:

#Configure logging for testing:optionally with log file

log4j.rootLogger=WARN,stdout

#log4j.rootLogger=WARN,stdout,logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

https://www.sodocs.net/doc/566483312.html,yout=org.apache.log4j.PatternLayout

https://www.sodocs.net/doc/566483312.html,yout.ConversionPattern=%d%p[%c]-%m%n

log4j.appender.logfile=org.apache.log4j.FileAppender

log4j.appender.logfile.File=target/spring.log

https://www.sodocs.net/doc/566483312.html,yout=org.apache.log4j.PatternLayout

https://www.sodocs.net/doc/566483312.html,yout.ConversionPattern=%d%p[%c]-%m%n

===============================

重新发布,OK,没有提示了。加入了这个配置文件后,再次运行程序上面的警告就会消失。尤其在进行Web层开发的时候,只有加入了这个文件后才能看到Spring后台完整的出错信息。在开发Spring整合应用时,经常有人遇到出现404错误但是却看不到任何出错信息的情况,这时你就需要检查下这个文件是不是存在。

在Eclipse中开发相关项目时,在控制台经常看到如下信息:

log4j:WARN No appenders could be found for logger

log4j:WARN Please initialize the log4j system properly.

此处输出信息并不是错误信息而仅只是警告信息,因为log4j无法输出日志,log4j是一个日志输入软件包。可以将Struts或Hibernate等压缩包解压,内有log4j.properties文件,将它复制到项目src文件夹或将log4j.properties放到\WEB-INF\classes文件夹中即可。

===================================WARN No appenders could be found for logger的解决办法

这几天做一个SSH项目,tomcat启动时出现以下问题:

log4j:WARN No appenders could be found for logger

(org.springframework.web.context.ContextLoader).

log4j:WARN Please initialize the log4j system properly.

在网上查了一下,多是说把ContextLoaderListener改为SpringContextServlet,但我这样改了没用。后来在一个英文网站上看到一个遇到同样问题的帖子,他是这样改的:

log4jConfigLocation

/WEB-INF/config/log4j.properties

······

org.springframework.web.util.Log4jConfigListener

这样改了问题就解决了,不用再修改ContextLoaderListener。

===================================

解决上述问题之后,再运行项目如出现No configuration found.Configuring ehcache from ehcache-failsafe.xml错误:

存在问题:

ehcache-failsafe.xml是来自于ehcache-1.1.jar包,但原因并不是找不到ehcache-failsafe.xml而造成的错误。

解决办法:

把ehcache-1.1.jar包里的ehcache-failsafe.xml抽取出来,改名为ehcache.xml放到工程的Src目录下,刷新一下并运行,就好了。

日志记录与异常处理规范(精)

日志记录与异常处理规范(2006-09-19 10:02:15转载日志记录与异常处理规范 1 日志记录规范规范日志设计规范主要目的是节省工作量,帮助对问题进行诊断。最终,终端用户可以获得更好的应用程序,并能从技术支持团队获得迅速的响应。 1.1 日志API 在使用 Java 平台进行开发时,使用的日志 API:Log4j-1. 2.8.jar 1.2 日志分类 l Security:记录外部对系统进行的各项操作 l Business:记录和跟踪业务逻辑执行过程 l Performance:记录和跟踪代码执行情况 1.3 日志级别日志级别有: l Debug: 包含了非常广泛的上下文信息,用于问题诊断。 l Info: 用于在产品环境中(粒度较粗)帮助跟踪执行过程的上下文消息。 l Warning: 警告消息,说明系统中可能存在问题。例如,如果这个消息类别是有关安全性方面的。 l Error: 错误消息说明系统中出现了严重的问题。这种问题通常都是不可恢复的,需要人工进行干预。表1 日志记录程序 public class Log4JTest { // Logging 类由EMIP平台提供Logging logging = Logging.getInstance("STDOUT"; public void testLogging( { //安全日志 https://www.sodocs.net/doc/566483312.html,("安全类型INFO级日志记录"; https://www.sodocs.net/doc/566483312.html,(Logging. SECURITY,"安 全类型INFO级日志记录"; https://www.sodocs.net/doc/566483312.html,(Logging. SECURITY,"安全类型INFO级日 志记录",new RuntimeException(; logging.error("安全类型ERROR级日志记录"; logging.error(Logging. SECURITY,"安全类型ERROR级日志记录"; logging.error(Logging. SECURITY,"安全类型ERROR级日志记录",new RuntimeException(; //业务日志 https://www.sodocs.net/doc/566483312.html,("业务类型INFO级日志记录"; https://www.sodocs.net/doc/566483312.html,(Logging. BUSINESS,"业务类型INFO级日志记录"; https://www.sodocs.net/doc/566483312.html,(Logging. BUSINESS,"业务类型INFO级日志记录",new RuntimeException(; logging.error("业 务类型ERROR级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR 级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR级日志记录",new RuntimeException(; //系统日志 https://www.sodocs.net/doc/566483312.html,("业务类型INFO级日志记录"; https://www.sodocs.net/doc/566483312.html,(Logging. BUSINESS,"业务类型INFO级日志记录"; https://www.sodocs.net/doc/566483312.html,(Logging. BUSINESS,"业务类型INFO级日志记录",new RuntimeException(; logging.error("业 务类型ERROR级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR 级日志记录"; logging.error(Logging. BUSINESS,"业务类型ERROR级日志记录",new RuntimeException(; https://www.sodocs.net/doc/566483312.html,("系统类型INFO级日志记录";

Jena_中文教程_本体API(经典)

Jena 简介 一般来说,我们在Protege这样的编辑器里构建了本体,就会想在应用程序里使用它,这就需要一些开发接口。用程序操作本体是很必要的,因为在很多情况下,我们要自动生成本体,靠人手通过Protege创建所有本体是不现实的。Jena 是HP公司开发的这样一套API,似乎HP公司在本体这方面走得很靠前,其他大公司还在观望吗? 可以这样说,Jena对应用程序就像Protege对我们,我们使用Protege操作本体,应用程序则是使用Jena来做同样的工作,当然这些应用程序还是得由我们来编写。其实Protege本身也是在Jena的基础上开发的,你看如果Protege 的console里报异常的话,多半会和Jena有关。最近出了一个Protege OWL API,相当于对Jena的包装,据说使用起来更方便,这个API就是Protege 的OWL Plugin所使用的,相信作者经过OWL Plugin的开发以后,说这些话是有一定依据的。 题目是说用Jena处理OWL,其实Jena当然不只能处理OWL,就像Protege 除了能处理OWL外还能处理RDF(S)一样。Jena最基本的使用是处理RDF(S),但毕竟OWL已经成为W3C的推荐标准,所以对它的支持也是大势所趋。 好了,现在来点实际的,怎样用Jena读我们用Protege创建的OWL本体呢,假设你有一个OWL本体文件(.owl),里面定义了动物类 (https://www.sodocs.net/doc/566483312.html,/ont/Animal,注意这并不是一个实际存在的URL,不要试图去访问它),并且它有一些实例,现在看如下代码: OntModel m = ModelFactory.createOntologyModel(); File myFile = ...; m.read(new FileInputStream(myFile), ""); ResIterator iter = m.listSubjectsWithProperty(RDF.type, m.getResource("http:// https://www.sodocs.net/doc/566483312.html,/ont/Animal")); while (iter.hasNext()) { Resource animal = (Resource) iter.next(); System.out.println(animal.getLocalName()); } 和操作RDF(S)不同,com.hp.hpl.jena.ontology.OntModel是专门处理本体(Ontology)的,它是com.hp.hpl.jena.rdf.model.Model的子接口,具有Model的全部功能,同时还有一些Model没有的功能,例如listClasses()、listObjectProperties(),因为只有在本体里才有“类”和“属性”的概念。

Nxlog日志采集配置手册

文档编号:Nxlog日志采集配置手册 2017年3月10日

文档控制 版本控制

1.1Windows操作系统安装 软件版本:nxlog-ce-2.9.1716.msi 支持操作系统:winxp-win2012 安装步骤: 双击安装包,一键安装 安装目录路径: 64位操作系统: C:\Program Files (x86)\nxlog 32位操作系统 C:\Program Files \nxlog 配置文件路径: C:\Program Files (x86)\nxlog\conf\nxlog.conf #此文件非常重要,基本所有操作都在此文件进行 Nxlog日志文件路径: C:\Program Files (x86)\nxlog\data\nxlog.log #此文件用来排查问题,确认nxlog运行是否正常 注意:如果操作系统是32位的,则nxlog安装路径默认为C:\Program Files\nxlog,此时需要修改配置文件: 否则nxlog服务无法启动。 1.2Linux/Centos操作系统安装 1.3AIX

Nxlog配置分为输入(Input)、输出(Output)、路径(Route); 输入为需要采集的数据源; 输出为日志需要发往的目的地,比如文件、数据库、日志服务器,在我们的环境中一般为探针地址。 2.1Windows操作系统 2.1.1Windows操作系统日志采集 Module xm_syslog #收集事件日志,所有的事件日志默认都被收集 #如果包含多个输入,名称可以修改,如 in1、in2等 Module im_msvistalog # For windows 2003 and earlier use the following: #如果是win2003或以前的操作系统, 需要使用下面的Module # Module im_mseventlog #配置输出 Module om_udp #安装完默认为om_tcp,需要修改成om_udp Host 10.16.106.33 # 探针地址 Port 514 Path in => out #源输入对应输出

浅谈标点符号的正确使用

一、故事引入 杜牧的《清明》一诗“清明时节雨纷纷,路上行人欲断魂。借问酒家何处有,牧童遥指杏花村。”大家都很熟悉,但如果把标点符号改动一下,就成了另一作品。有人巧妙短句将其改成了一首词:“清明时节雨,纷纷路上,行人欲断魂。借问酒家何处?有牧童遥指,杏花村。”还有人改成了一首优美隽永的散文:“清明时节,雨纷纷。路上,行人欲断魂。借问酒家:“何处有牧童?”遥指杏花村。 又如,常有人在一路边大小便,有人就在那立了块牌子:过路人等不得在此大小便。立牌人的本意是:“过路人等,不得在此大小便。”可没有点标点符号,于是被人认为是:“过路人,等不得,在此大小便。” 类似的故事不胜枚举,诸如一客栈“下雨天留客天留我不留”的对联,祝枝山写给一财主的对联“今年正好晦气全无财富进门”。可见,标点符号的作用举足轻重。语文课程标准对小学各阶段学生应该掌握的标点符号作了明确的规定和说明。因此,作为小学语文教师,不但要咬文嚼字,教会学生正确使用标点符号也不容忽视。下面,我就简单谈谈一些易错的标点符号的用法。 二、易错标点符号的用法例谈 (一)问号 1、非疑问句误用问号 如:他问你明天去不去公园。虽然“明天去不去公园”是一个疑问,但这个问句在整个句子中已经作了“问”的宾语,而整个句

子是陈述的语气,句尾应该用句号。又如:“我不晓得经理的心里到底在想什么。”句尾也应该用句号。 2、选择问句,中间的停顿误用问号 比如:宴会上我是穿旗袍,还是穿晚礼服?这是个选择问句,中间“旗袍”的后面应该用逗号,而不用问号。再有:他是为剥削人民的人去死的,还是为人民的利益而死的?这个句中的停顿也应该用逗号。 3、倒装句中误把问号前置 像这样一个句子:到底该怎么办啊,这件事?原来的语序是:这件事到底该怎么办啊? 倒装之后,主语放到了句末,像这种情况,一般问号还是要放在句末,表示全句的语气。 4、介于疑问和感叹语气之间的句子该如何使用标点符号 有的句子既有感叹语气,又有疑问的语气,这样的情况下,哪种语气强烈,就用哪个标点,如果确定两种语气的所占比重差不多,也可以同时使用问号和叹号。 (二)分号 1、句中未用逗号直接用分号 从标点符号的层次关系来看,应该是逗号之间的句子联系比较紧密,分号之间的句子则要差一个层次,这样看来,在一个句中,如果没有逗号径直用分号是错误的。比如:漓江的水真静啊,漓江的水真清啊,漓江的水真绿啊。这里句中的两处停顿就不能使用分号。再

应用系统日志规范

应用系统日志规范 在应用程序中添加程序日志记录可以跟踪代码运行时轨迹,作为日后 审计的依据;并且担当集成开发环境中的调试器的作用,向文件打印代码 的调试信息。本规定Jave EE项目必须使用Commons-Logging作为日志接 口封装,选用Apache提供的可重用组件Log4j作为底层实现。 1.日志命名规范 根日志(root logger)位于日志层次的最顶层,它的日志级别不能指派为空;不能通过使用它的名字直接得到它,而应该通过类的静态方法Logger.getRootLogger得到它(指root logger)。所有其他的日志可通 过静态方法Logger.getLogger来实例化并获取,这个方法 Logger.getLogger把所想要的logger的名字作为参数,一般取本类的名字作为参数。 2.日志信息级别规范 日志信息输出的优先级从高到低至少应分为五档,分别是Fatal、ERROR、WARN、INFO、DEBUG。这些级别用来指定这条日志信息的重要程度。在测试阶段可以打开所有级别的日志,系统上线后只允许输出INFO以上级别(含INFO)。 各级别的日志信息作用规定如下: 2.1致命(Fatal) 严重的错误,系统无法正常运行,如硬盘空间满等。这个级别很少被用,常暗含系统或者系统的组件迫近崩溃。

2.2错误(Error) 系统可以继续运行,但最好要尽快修复的错误。这个级别用的较多,常常伴随Java异常,错误(Error)的环境不一定会造成系统的崩溃,系统可以继续服务接下来的请求。 2.3警告(Warn) 系统可以正常运行,但需要引起注意的警告信息。这个级别预示较小的问题,由系统外部的因素造成的,比如用户输入了不符合条件的参数。 2.4信息(Info) 系统运行的主要关键时点的操作信息,一般用于记录业务日志。但同时,也应该有足够的信息以保证可以记录再现缺陷的路径。这个级别记录了系统日常运转中有意义的事件。 2.5调试(Debug) 系统运行中的调试信息,便于开发人员进行错误分析和修正,一般用于程序日志,关心程序操作(细粒度),不太关心业务操作(粗粒度)。 系统出现问题时,必须抛出异常,在处理异常时记录日志,且日志级别必须是前三个级别(Fatal\Error\Warning)中的一种。 3.日志配置规范 所有的日志配置文件放在src目录下,编译时随同.class文件一同拷贝到(%webapp_HOME%)\WEB-INF\classes\目录下,这些配置文件必须采用properties文件的编写方法, commons-logging.properties文件用来指定commons-logging的实现为log4j,log4j.properties文件用来配置 log4j的所有参数,日志配置信息不得配置在这两个文件以外的文件中。

编校一课丨连接号用法大全

编校一课丨连接号用法大全 《标点符号用法》新标准中,连接号删除长横线“——”,只保留三种形式:一字线“—”、半字线“-”、波纹线“~”。三种连接号的使用范围各不相同。一字线 一字线占一个字位置,比汉字“一”略长标示时间、地域等相 关项目间的起止或相关项之间递进式发展时使用一字线。例:1.沈括(1031—1095),宋朝人。 2.秦皇岛—沈阳将建成铁路客运专线。 3.人类的发展可以分为古猿—猿人—古人—新人这四个阶段半字线半字线也叫短横线,比汉字“一”略短,占半个字位置。用于产品型号、化合物名称、 代码及其他相关项目间的连接。例:1.铜-铁合金(化合物 名称) 2.见下图3-4(表格、插图编号) 3. 中关园3号院3-2-11室(门牌号) 4.010-********(电话号码) 5.1949-10-01(用阿拉伯数字表示年月日) 6.伏尔加河-顿河运河(复合名词)波纹线波纹线俗称波浪线,占一个字位置标示数值范围的起止时用波纹线,包括用阿拉伯数字表示的数值和由汉字数字构成的数值。例:1.10~30cm 2. 第七~九课常见问题1.在数值间使用连接号时,前后两个数值都需要加上计量单位吗?在标示数值范围时,用波纹线连接号。此时,在不引起歧义的情况下,只在后一数值后计量单位,用波纹线连接的两个

数值,其单位是一致的。例:500~1000公斤 2.“1996~现在”这样的用法对吗?不对。波纹线连接数字,“现在”不是数字,应改为“”到或“至”。“1996”后宜加“年”。 关注“木铎书声”,做优秀出版人木铎书声是北京师范大学出版科学研究院官方微信平台,致力于传播最新行业动态,促进出版职业人的发展。

Log4记录日志使用说明

一、 想要让Log4net日志(以下称日志)按每月自动归类为一个文件夹,为此,学习和修改了log4net.config文件。查了资料,重点是以下这些参数: 众说纷纭,许多说得让人看后似懂非懂,经过说起来都是泪的实验,终于有了明确的结论,整理发表出来避免后人走弯路。 1.StaticLogFileName的值如果为true,则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。如果为false,则文件名取File+DatePattern。 2.File的值是静态的如果写“yyyy-MM”就是“yyyy-MM”而不会转成当前的年份和月份,而且斜扛“/”与反斜扛“\”效果相同,连续2扛也与1扛相同。 3.DatePattern的值是动态的“yyyy”代表4位年份,详细参考网上的众多资料(这个不难得到)。如果想表达静态的字符(如“y”)有2种办法,1是使用转义字符“\”,即“\y”,2是使用一对单引号限定,即“'y'”。如上面的value="_yyyy-MM-dd.'config'",就是因为fig有特殊含义,所以把“config”用单引号包含起来了。 4.修改了(网站上的)log4net.config文件,使它生效的方法是重启网站(我没有试着去操作应用程序池)。实测重启网站有约10%没有使它生效,但如果是先停止网站再启动,则100%生效。 以上4点最关键是第1点,也是众多资料所没有说清楚的(本人的汉字理解能力有问题?)。最终符合我要求的配置如下: 以上是基于我自己做的实验而得出的结论,难免不够系统和全面,限于本人水平,难免有错误。如有发现错漏,欢迎指正。 二、 log4net配置文件设置 2011-11-16 13:15:41| 分类:Notes|举报|字号订阅

网上超人气计算机免费视频教程大全

网上超人气计算机免费视频教程大全(下载地址) 2009-07-13 21:33 视频网络管理员试题讲解深入浅出,详细讲解! https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=185&wh=helploving 视频局域网组网技术视频教程深入浅出,详细讲解! https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=212&wh=helploving 视频希赛视频点播平台,IT技术和管理视频大展销希赛视频点播,信息资源学习的海洋,课程分工明确,细致,IT技术管理的展示平台,让你无时不在信息学习培训中得到知识的享受,专家讲解具体到位,学习课程安排合理流畅,通过希赛视频平台,找到你的需求,解决你学习的难题,轻松获取知识的硕果。https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=124&wh=helploving 视频网络管理员考试串讲视频教程本串讲视频教程根据最新的网络管理员考 试大纲和作者进行考试辅导与阅卷的经验,对其中的难点问题进行了详细的分析和讲解。对于网络基础知识、网络应用配置、HTML标记语言和ASP动态编程等有关技术和工具进行详细的讲解。并详细讲解了上下午试题解答方法和技巧,以及考试中出现的常见问题及对策。 https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=63&wh=helploving 视频 IT项目管理视频教程根据PMBOK2004知识体系,结合我国IT项目建设和管理的实际情况,对信息系统项目管理所涉及的知识领域进行了详细的讲解。https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=37&wh=helploving 视频系统分析师视频教程本视频教程就考试中经常出现的一些问题进行了归 纳和总结,压缩了所有考试重点和难点知识。所总结的考试重点知识包括了(基础知识、案例分析、论文)实际考试时除专业英语以外的90%以上的考试知识点,而这些知识点几乎在每次考试中都会出现。 https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=10&wh=helploving 视频网络安全设备与技术视频教程介绍网络安全设备种类及工作原理、优缺点和典型应用。 https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=42&wh=helploving 视频信息处理技术员串讲视频深入浅出,详细讲解! https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=173&wh=helploving 视频信息系统监理师试题讲解视频深入浅出,详细讲解! https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=186&wh=helploving 视频信息系统项目管理师考试串讲视频教程根据最新的信息系统项目管理师 考试大纲和作者进行考试辅导和阅卷的经验,对其中的难点问题进行了详细的分析和讲解。https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=75&wh=helploving 视频二级Visual Basic语言视频教程集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级Visual Basic考试的真谛。 https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=19&wh=helploving 视频 Java程序设计深入浅出,详细讲解! https://www.sodocs.net/doc/566483312.html,/user/xch/from.asp?id=204&wh=helploving 视频二级Access数据库视频教程集中了考试所有的难点和重点知识的精深讲解,可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级Access考试的真谛。

log4j输出到文件和数据库

log4j输出到文件和数据库 控制台的实现就不说了,这里提供两种实例的配置,一种是输出为文件的(每天输出一个文件),一种为输出到数据库的配置。 1、输出到文件: Properties代码 log4j.rootCategory=WARN, CONSOLE, FILE https://www.sodocs.net/doc/566483312.html,.surfilter.bt=FATAL,TOFILE log4j.appender.TOFILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.TOFILE.Threshold=FATAL log4j.appender.TOFILE.File=E:/javascpace/bt/logs/union.html log4j.appender.TOFILE.Append=true log4j.appender.TOFILE.ImmediateFlush=true log4j.appender.TOFILE.DatePattern='.'yyyy-MM-dd'.html' https://www.sodocs.net/doc/566483312.html,yout=com.surfilter.bt.util.FormatHTMLLayout log4j.rootCategory=WARN, CONSOLE, FILE https://www.sodocs.net/doc/566483312.html,.surfilter.bt=FATAL,TOFILE log4j.appender.TOFILE=org.apache.log4j.DailyRollingFileAppender log4j.appender.TOFILE.Threshold=FATAL log4j.appender.TOFILE.File=E:/javascpace/bt/logs/union.html log4j.appender.TOFILE.Append=true log4j.appender.TOFILE.ImmediateFlush=true log4j.appender.TOFILE.DatePattern='.'yyyy-MM-dd'.html' https://www.sodocs.net/doc/566483312.html,yout=com.surfilter.bt.util.FormatHTMLLayout 这里的com.surfilter.bt.util.FormatHTMLLayout是重写了log4j提供的HTMLLayout类,具体代码如下: Java代码 import java.text.SimpleDateFormat; import java.util.Map; import org.apache.log4j.HTMLLayout; import https://www.sodocs.net/doc/566483312.html,yout; import org.apache.log4j.Level; import org.apache.log4j.helpers.Transform; import org.apache.log4j.spi.LocationInfo; import org.apache.log4j.spi.LoggingEvent;

连接号用法之深入辨析

连接号用法之深入辨析 王曜卿 第二轮修志,各地都是衔接上届志书的下限编修续志,续志书名也是千篇一律:在书名下加上断限。书名下断限的书写格式,规范写法为―(19xx-2000)‖,但采用这种写法的却不成主流。不规范的书写格式中,常见的是―(19xx~2000)‖,此外还有―(19xx-2000年)‖、―(19xx~2000年)‖、―(19xx年-2000年)‖、―(19xx年~2000年)‖,加上―-‖、―~‖两种符号自身宽度变化所产生的变体,不规范的写法就更多了。 志书断限中的连接号,没有引起人们的高度重视,由此所反映出来的,则是标点符号规范化和表达概念准确性的大问题。准确地说,是正确、规范地使用连接号,准确地表述时空范围之概念,准确地表述数值量之关系(或幅度)的大问题。 一、连接号的多种形式 连接号有多种形式,各自的作用、用途也不同。中华人民共和国国家标准(简称―国标‖)《标点符号用法》(GB/T 15834-1995)对连接号的规定: 4.13 连接号 4.13.1 连接号的形式为?-‘。连接号还有另外三种形式,即长横?——‘、半字线?-‘和浪纹?~‘。 4.13.2 两个相关的名词构成一个意义单位,中间用连接号。例如: a) 我国秦岭-淮河以北地区属于温带季风气候区,夏季高温多雨,冬季寒冷干燥。 b) 复方氯化钠注射液,也称任-洛二氏溶液(Ringer-Locke solution),用于医疗和哺乳动物生理学实验。 4.13.3 相关的时间、地点或数目之间用连接号,表示起止。例如: a) 鲁迅(1881-1936)中国现代伟大的文学家、思想家和革命家。 b) ?北京——广州‘直达快车 c) 梨园乡种植的巨峰葡萄今年已经进入了丰产期,亩产1000公斤~1500公斤。 4.13.4 相关的字母、阿拉伯数字等之间,用连接号,表示产品型号。例如: 在太平洋地区,除了已建成投入使用的HAW-4和TPC-3海底光缆之外,又有TPC -4海底光缆投入运营。 4.13.5 几个相关的项目表示递进式发展,中间用连接号。例如:

kettle日志配置文档

Java日志系统框架的设计与实现

Java日志系统框架的设计与实现 在Java领域,存在大量的日志组件,open-open收录了21个日志组件。日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有着重要的作用,我们可以把Java日志系统看作是必不可少的跟踪调试工具。 1.简介 日志系统是一种不可或缺的跟踪调试工具,特别是在任何无人职守的后台程序以及那些没有跟踪调试环境的系统中有着广泛的应用。长期以来,日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有非常现实的意义。这种服务通常以两种方式存在: 1.日志系统作为服务进程存在。Windows中的的事件日志服务就属于这种类型,该类型的日志系统通常通过消息队列机制将所需要记录的日志由日志发送端发送给日志服务。日志发送端和日志保存端通常不在同一进程当中,日志的发送是异步过程。这种日志服务通常用于管理员监控各种系统服务的状态。 2.日志系统作为系统调用存在。Java世界中的日志系统和Unix环境下诸多守护进程所使用的日志系统都属于这种类型。日志系统的代码作为系统调用被编译进日志发送端,日志系统的运行和业务代码的运行在同一进程空间。日志的发送多数属于同步过程。这种日志服务由于能够同步反映处系统运行状态,通常用于调试跟踪和崩溃恢复。 本文建立的日志系统基本属于第二种类型,但又有所不同。该日志系统将利用Java线程技术实现一个既能够反映统一线程空间中程序运行状态的同步日志发送过程,又能够提供快速的日志记录服务,还能够提供灵活的日志格式配置和过滤机制。 1.1系统调试的误区 在控制台环境上调试Java程序时,此时往控制台或者文本文件输出一段文字是查看程序运行状态最简单的做法,但这种方式并不能解决全部的问题。有时候,对于一个我们无法实时查看系统输出的系统或者一个确实需要保留我们输出信息的系统,良好的日志系统显得相当必要。因此,不能随意的输出各种不规范的调试信息,这些随意输出的信息是不可控的,难以清除,可能为后台监控、错误排除和错误恢复带来相当大的阻力。 1.2日志系统框架的基本功能 一个完备的日志系统框架通常应当包括如下基本特性: 所输出的日志拥有自己的分类:这样在调试时便于针对不同系统的不同模块进行查询,从而快速定位到发生日志事件的代码。

log4j教程

以前都是把所有日志都输出到一个文件下面,今天有个同事问想把某个包下的日志输出到 指定的地方,于是就在网上查了一些资料,总结一下,以免以后用到。 一、log4j是什么? Log4j是一个开源的日志记录组件,其产品已经相当的成熟,且使用非常的广泛。在工程 中以易用,方便等代替了 System.out 等打印语句。 Log4j的目标是:它允许开发人员以任意的精细程度控制哪些日志说明被输出。通过使用 外部的配置文件,可以在运行时配置它。 Log4j的具体在 https://www.sodocs.net/doc/566483312.html,/log4j/找到它(有使用的文档说明)。另外,log4j已经被转换成 C, C++, C#, Perl, Python, Ruby, 和 Eiffel 语言。 二、通常我们建立一个log4j.properties文件放在src下,编译之后就生成在../web- inf/class/当然也可以放到其它任何目录,只要该目录被包含到类路径中即可,中定位这 个文件,并读入这个文件完成的配置。这个配置文件告诉Log4J以什么样的格式、把什 么样的信息、输出到什么地方。 Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局),这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。下面对三个组件分别进行说明: 1、 Loggers Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG Log4j有一个规则:假设Loggers级别为P,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。 假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息 就不显示了。 其语法表示为: org.apache.log4j.ConsoleAppender(控制台) org.apache.log4j.FileAppender(文件) org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

日志设置

如何强制用户在提交SVN时填写日志信息? 如果用户使用的都是TortoiseSVN客户端,可以给文件夹加上“tsvn:logminsize”属性。当用户使用TSVN提交此文件夹内的改动时,若日志信息长度不够,提交确定按钮会保持灰色不可用。不过此法对于非TSVN客户端便无效了。 作为更严格的限制,可以在Subversion服务器端强制必须填写日志信息,这时需用到pre-commit 钩子脚本。 代码如下: 文件:pre-commit.bat 1svnlook log %1 -t %2 | CScript "%~dp0pre-commit.js" 2EXIT %ERRORLEVEL% 文件:pre-commit.js 3var log = WScript.StdIn.ReadAll(); 4log = log.replace(/^\s+|\s+$/g, ''); 5if (log.length < 1) { 6 WScript.StdErr.WriteLine('【由于版本库管理员的设定,您必须输入非空的日志信息, 用以描述本次提交的内容。】'); 7 WScript.Quit(1); 8} 脚本说明: 以上脚本文件都应该使用ANSI编码,将它们保存于版本库存放处的hooks文件夹中即可。 Subversion在提交事务完成之前,会执行钩子脚本“pre-commit”,并根据其返回结果来决定是否提交事务。 在Windows平台中,钩子脚本应该是一个Windows可执行程序,如“pre-commit.exe”或“pre-commit.bat”。

当然可以通过某些程序语言编译生成一个程序,但实施起来过于复杂,实属小题大做。 而批处理由于本身的不足,不借助其它工具来判断非空日志也不那么简单。 网上有些例子就是使用批处理结合第三方程序来处理的,但前提是需要额外安装第三方程序。 不过在Windows下其实有更“绿色”的做法:使用WSH(Windows脚本宿主)脚本——Windows 时代更强大的“批处理”,可以支持JS,VBS等脚本语言。 虽然Windows中可以通过配置PATHEXT环境变量,将某些扩展名当做“可执行文件”的扩展名,直接敲入主文件名即可执行——比如需要执行WSH脚本“pre-commit.js”,在命令提示符下直接敲入“pre-commit”即可;但很遗憾,测试发现Subversion在需要触发pre-commit钩子脚本时,并不会直接触发“pre-commit.js”。 但我们仍然可以通过批处理脚本pre-commit.bat或pre-commit.cmd来间接调用WSH脚本。 批处理的参数:%0代表批处理脚本命令自身(的文件名),%1,%2,%3……依次代表批处理的参数。 批处理参数的扩展:“%~dp0”用来获取批处理脚本所在的文件夹绝对路径。可以在命令提示符中输入“CALL /?”了解相关语法详情。 传入pre-commit钩子脚本的参数:第1为版本库位置,第2为提交事务的id。 CScript脚本宿主支持标准输入输出及错误流,而WScript脚本宿主则不支持。Windows的默认脚本宿主为WScript,因此必须明确调用CScript。 (当默认宿主被改为CScript时,这种写法也是可行的“svnlook log %1 -t %2 | "%~dp0pre-commit.js"”)。 被调用的WSH脚本名需要重新围上双引号(%~批处理参数扩展会移除原始参数包围的双引号),以确保版本库路径中包含空格时不会出错。 钩子脚本执行流程: 批处理脚本执行svnlook命令输出日志信息,通过管道将日志流输出到WSH脚本; WSH脚本读取流之后,判断日志内容是否为只含空白的字符串; WSH脚本执行完成后,退出码会被写入ERRORLEVEL环境变量,最后批处理脚本也使用此错误码退出。 若钩子脚本的退出码非0,提交事务便会被阻止,同时脚本输出到标准错误流的消息将被传送给

日志记录规范

平常我的系统开发运行过程中,记录关键信息对于完善和修改提出了明确的建议。但是在现实的一些应用中的日志记录比较混乱,导致无法准确快速的定位问题发生的地方和问题发生的时候以及问题发生的场景。我就依据我平时使用log4j进行日志记录的一点心得与大家分享如何更加规范的记录日志信息,如果有不妥的问题请明示我好进行相应的改进,共同进步哈。 1.要记录什么类型日志 我们的系统开发常常会涉及到系统致命错误日志,系统可控错误日志,用户操作日志和系统运行日志这四大类日志的记录。记录致命性错误用于记录会影响整个系统正常运行的错误,比如我们在开发过程中的try...catch...模块中抛出的一些未能预料到的系统错误,而且这种错误会导致系统运行失败的信息进行记录。系统可控错误日志,这一类的日志发生之后其实不会导致系统运行出现异常的,可能是对某些数据的初始化深入验证出现的问题。用户操作日志这一类日志量比较大,同时这一类日志用于跟踪用户的行为分析是非常的重要的应为可以作为用户数据挖掘发现用户的喜好等一些信息。程序运行信息记录,这一类信息用于记录子过程运行情况。 2.致命错误如何记录 如上所述我们明确的错误日志,是用来记录系统费预测性错误,可能导致网站爆出黄页相应的操作流程无法进行下去。或则在一些安装程序中记录导致系统突然退出的相关信息。在防御式编程中经常使用try....catch...模块包括一个程序的运行过程,catch的最后捕获的一级Exception是我们无法控制也无法预测的系统运行异常,这里我们记录fatal致命性错误,我这里一般记录的是一场发生的堆栈信息。如下程序块: [html]view plaincopyprint? 1.try { 2. VerificationUser(user); 3. String result = OrderTicket(user,flight); 4. orderticket.trace("执行占座成功!占座成功的代码: "+result); 5. https://www.sodocs.net/doc/566483312.html,(user.getName()+"执行了占座操作,占座编码 为"+result); 6. String ticketNo= GenariteTicket(result); 7. genariteTicket.trace("执行出票成功!出票成功票号: "+ticketNo);

进销存教程03

员工部门CRUD管理 Junit测试套件 @RunWith(Suite.class) @SuiteClasses({DepartmentServiceTest.class, EmployeeServiceTest.class }) /** * 单表的测试类必须放到前面 */ public class AllTests { } OpenSessionInViewFilter 异常:could not initialize proxy - no Session 在访问员工列表时候:${https://www.sodocs.net/doc/566483312.html,} xxxAction->xxxService->openSession->BaseDao->closeSession->xxxSer vice->xxxAction->jsp Web.xml Osiv->openSession->struts2->xxxAction->xxxService->->BaseDao->xxx Service->xxxAction->jsp->closeSession 必须配置在struts的过滤器的前面 osiv org.springframework.orm.hibernate3.support.OpenSess ionInViewFilter osiv *.action

log4j日志输出规范

Log4j 使用参考规范

目录 简介 (3) 1. 概述 (3) 2. 库主件 (3) 3. 主要组件 (3) 配置 (4) 1. 相关配置文件 (4) 2. 详细配置说明 (5) 3. 输出方式 (5) 4. 输出格式 (6) 调用 (7) 注意问题 (7) 参考文档 (8)

1. 概述 程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。例如,跟踪语句(trace),结构转储和常见的System.out.println或printf调试语句。log4j 提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。 使用一个专门的日志记录包,可以减轻对成千上万的System.out.println 语句的维护成 本,因为日志记录可以通过配置脚本在运行时得以控制。log4j 维护嵌入在程序代码中的日志记录语句。通过规范日志记录的处理过程,一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。 五级输出,依次为DEBUG、INFO、WARN、ERROR、FATAL。使用者可根据不同的 需求,设定不同的输出级别,则得到不同级别的输出结果。 (在正式生产环境中,一般设定为 warn) 2. 库主件 目前log4j 2.0 版本需要JAVA5(logging services designed for Java 5 and later);1.3 版不被推荐使用,我们使用的最多的是1.2版。目前可download 的是1.2.17 版。下载地址:https://www.sodocs.net/doc/566483312.html,/dyn/closer.cgi/logging/log4j/ 库文件一般为名为log4j.jar, 使用时加入lib路径下。 3. 主要组件 Log4j有三个主要组件:loggers、appenders和layouts。这三个组件协同工作,使开发人员能够根据消息类型和级别来记录消息,并且在程序运行期控制消息的输出格式位置。Logger:记录器;Logger 负责处理日志记录的大部分操作。 Appender:挂载点;Appender 负责控制日志记录操作的输出。 Layout:布局;Layout 负责格式化Appender 的输出。

相关主题