Skip to content

{ Daily Archives } 星期二, 六月 2007

使用Log4j进行日志记录

        1996 年初,欧洲安全电子市场(EU SEMPER)项目组决定编写自己的日志记录API,后来这个API演变成了Log4j。Log4j是一个开放源码项目,一个非常流行的Java日志记录包。它允许开发者向代码中插入日志记录语句,还允许在不修改应用程序源码的情况下修改日志记录的行为。 几乎每一个项目都会使用日志记录,但是由于日志记录不是项目的核心,因此受重视的程度一般不是很高。我们认为使用日志记录是一件非常严肃的事情,而且做好使用日志记录的规划比单纯记录日志本身更加重要。 本文将比较全面的阐述Log4j的设计原理和使用方法。 日志记录 日志记录记录的是应用程序运行的轨迹。我们可以通过查看这些轨迹来调试应用程序,这可能也是日志记录最为流行的用法了。但是我们必须意识到规划良好的日志记录中还含有丰富的信息,通过手工的方式或借助一些工具(大多数时候需要自己来书写这些工具)来分析挖掘这些信息。 例如,如果我们在规划中指出必须记录用户的每一次操作,记录的样式为 [日志信息]-[操作开始的时间]-[日志级别]-[日志类别]-[用户名]-[操作名]-[消息],这只是我们假设的一种样式,实际的日志中一般会含有比这更加丰富的信息。为了更好的理解,我们根据该样式构造了一些日志记录(其中日志类别org.fulin.Main、org.fulin.Parser 和org.fulin.UserOperator使用了不同的样式):

应届本科生笔试题

C++/C#软件开发工程师笔试 姓名:___________________ 第一部分:个人基本情况 注意: 1、    请尽量根据本人的实际情况来回答,这部分的题目主要是进一步了解你自己的兴趣、志向、所接受的教育和编程实践等基本情况,为后续的工作安排作为基础的参考。 2、    不必刻意的夸大自己的某方面的能力,我们初衷是希望能够找到基础比较扎实、虚心学习、肯于钻研的候选人,经过一年两年在具体工作中我们的培养和你自己的努力钻研,成长为比较好的程序员和骨干。因此,如实的反映自己的基础和兴趣最为重要,我们希望找对人,你也希望找对单位。 3、    每题回答不要太多,字数在20-50字左右,把提纲写出来即可 4、    笔试之后,请稍等片刻,我们会安排5-10分钟的简短面试,针对你的答卷再深入的提几个问题。 1、    在你学过的软件和计算机相关课程中,哪些课程你学得比较明白,哪些原理你现在还比较清楚的记得?(简单的列举几个,这些内容将在后续的测试中着重考察) 2、    请描述一两个你写过的比较满意的程序的功能(可以包括课程练习、毕业设计、自己琢磨的程序、挣零花钱的私活等等)。 3、    你读过别人的程序吗(比如书上的示例等等)?那些程序体会最深?简单描述一下体会?(比如代码是否容易理解,思路是否有启发吗等等) 4、    哪些工具软件用的比较熟练?一般都这些软件干什么事情? 第二部分:编程基础知识 注意: 1.如果某一道题回答不出来,请不要猜测,可直接跳过。 2.本测试只作为录取参考或者将来录取之后培训的依据,得分低并不意味着不被录取。 3.凡是要求写函数的,考察的是函数的输入参数和返回值,不是指cout,cin或者printf等键盘和屏幕的输入输出。 1.请比较链表和数组在内存使用效率、访问速度等方面的差别。(10分) 2.请解释SQL数据库表的主键的作用。主键的值可以为NULL吗?可以重复吗?(10分) 3.已知数据库表PERSON,其中有字段“NAME”,“AGE”,“TELEPHONE”,请你写出一个SQL语句,在这个表中插入一条记录,记录值为Name=“Tom”,Age=20,Telephone=“62757390”。(10分) 4.请用你熟悉的语言写一个函数(C,C++,Java或者C#任选),输入参数为一个浮点数数组,输出参数为这个数组中各数的平均值、最大值、最小值。(20分) (提示:考察函数的原型、输入输出参数和返回值,以及对数组的掌握)。 5.请用你熟悉的语言写一个求阶乘的函数(C,C++,Java或者C#任选)。(20分) 7、设计一个或者几个类来管理职工信息(可以使用数组、链表等任意数据结构),实现插入、删除、查找职工信息。每个职工的信息包括职工编码、年龄、姓名等三个数据。只需要写出类的数据成员、构造、析构函数、插入、删除、查找函数的声明,不必实现。(30分) 提示:考察类的设计和在C++/C#中使用。