o—
DQI:10.16707/j.cnki.fjpc.2018.05.084
建电脑
COMPUTER
程序设计语言中日志模块的应用
温立辉
(河源职业技术学院电子与信息工程学院,广东河源517000)
【摘要】针对信息系统开发过程中日志功能的实现问题,讨论其原理过程及日志模块的适用场景,针对Java编程语 言分析了 Lo4j模块的基本配置及相关语法,最后说明日志模块在程序设计中重要作用。
【关键词】日志;级别;拦截;Log4j1. 前言
在程序设计语言中,日志模块开发是一个重要的编程领 域,尽管在不同语言中其实现过程差异很大,但无一例外的都 为日志功能预留了实现接口,有的编程语言环境中还专门集成 日志API,作为开发人员直接调用相关功能即可,而无需再从头 编码开发。
2. 认识日志模块
日志是信息系统在业务运营过程中系统运行状态的记录, 其包括两大部分。一是对系统自身情况的记录,如在运行过程 中有无出现不良状态,有无出现服务器故障,有无出现性能瓶 颈,有无遭受外界恶意攻击,有无出现网络、应答等方面的异 常,掌握了这些信息对系统的维护、安全、改进、升级等方面有 非常重要的意义。二是对系统用户的操作记录,如哪个用户在 什么时间段,哪个IP地址登录了信息系统,在信息系统上做了 哪些操作行为,掌握了这些信息就可对用户的个人行为进行分 析、审计、追踪数据变化过程。
基于以上两方面的作用,日志模块相当于信息系统运维人 员的眼睛与耳朵,离开了它运运维人员就变成了一个聋子和瞎 子,无法诊断应用系统存在的问题,无法应对各种性能、效率、 安全等方面风险各隐患,正因如此,目前各种各样的信息管理 系统中都集成了日志的功能,以防止不测事件的发生。
3. 日志功能原理
在信息系统中,日志信息一般以两种形式存在,文本日志 及二进制日志。文本日志是指日志信息直接存储在文本文件 中,这种日志形式方便运维人员的直接读取。二进制日志是指 日志信息存储在二进制文件中,这种形式的日志一般适用管理 系统底层的日志记录形式,或用于远程传输的日志文件也以该 种形式存在。
在Java EE领域,日志功能的实现一般分两部分:业务日 志、系统运行日志。对管理系统的业务日志,一般使用统 一截获用户行为,在用户的操作行为发生前或发生后把相关信 息写人日志模块。对管理系统运行日志,一般使用try…catch语 句块捕获运行时系统异常,再把相关的异常信息写人日志模 块。
在Java编程语言中,日志模块一般使用Log4j组件实现。 Log4j组件中有一个Logger日志编程类,通过此类的静态方法 可以取得该类的实例,再通过该实例可把相关信息写人日志系 统。如图1所示,Logger类聚合了 Appender基类,Appender类 定义了日志的输出目的地,其下有ConsoleAppender与FileAp- pender两实现子类,ConsoleAppender子类直接把输出目标地指 向控制台,FileAppender子类则把输出目的地指文本文件,可自
定义路径。同时Appender类中又聚合了 Layout基类,Layout类 代表输出格式,其有两个实现子类,分别为SimpleLayout与 PatternLayout类,SimpleLayout定义了最简单的信息输出格式, 当选择此类作为输出类时,不需要用户配置相关格式,Pattern- Layout 中则未定义任何输出格式 ,选择此类作为输出类时 ,需 要手动配置相关的输出格式。
图1 Log4j组成结构
4.日志组件配置
Log4j组件中有五种日志级别,从高到低分别是:严重错误 级另(FATAL)、一般错误级别(ERROR)、警告级别(WARN)、一般 信息级别(INFO)、调试级别(DEBUG),当日志的级别低于当前的 系统控制级别时,相应的级别的上场信息将不会输出。
使用Log4j插件作为系统的日志组件时,所有配置信息将 写在一个名字叫log4j.properties的属性文件中,文中米用键值 对(key=value)的形式来配置相关信息,log4j.properties文件必需 存放于字节码路径下,以供系统读取。
配置文件中用rootCategory属性声明日志级别及输出目标 名称,用File属性声明具体日志文件位置,用layout属性声明 是否使用自定义方式输出日志信息,用ConversionPattern属性 定义具体的日志输出格式。具体配置如下所示:
#定义系统平台日志级别及输出目的地log4j .rootCategory=INFO,fileLog#声明日志输出到文件
log4j.appender.fileLog=org.apache.log4j.FileAppender#声明日志文件路径
log4j.appender.fileLog.File=C:\\\\LogFile\\\est.log#声明采用自定义格式
log4j.appender.fileLog.layout=org.apache.log4j.PatternLayout#定义日志信息输出的具体格式
log4j.appender.fileLog.layout.ConversionPattern =% d {yyyy MMM dd HH:mm:ss,SSS} %p %t %c - %m%n
2018年第
5期
|
福建电脑
.157.
建电脑
在实际应用中使用日志模块时,首先要在工程中加入 Log4j插件包,然后在程序代码中,首先通过Class类中的反射 方法getName方法取得本类名称,再把名称传递到静态方法 getLogger中以取得Logger实例。具体语句如下:
Logger log = Logger.getLogger(this.getClass().getName())取得Logger实例后,即可调用实例中的debug、info、、warn、 error、£atal方法,写入相应级别的日志信息。具体代码如下:
//写入DEBUG级别日志信息log.debug(\"----------debug------\")//写入INFO级别日志信息log.info(\"----------info------\")//写入WARN级别日志信息log.warn(\"----------warn------\")//写入ERROR级别日志信息log.error(\"----------error------\")//写入FATAL级别日志信息log.fatal(\"----------fatal------\")
在应用程序运行时,日志信息是否会输出,怎样形式输出, 则取决于log4j.properties文件的相关配置,以上面的日志配置 为例,因其定义的系统平台日志级别为INFO,日志信息输出目 的地为“C:/LogFile/test.log”,故上面的写入日志语句中,DEBUG
COMPUTER
息将会输出到C:/LogFile/test.log的日志文件中。
5.结束语
-〇
级别的日志语句将不会被生效,除此之外,其余级别的日志信
作为信息系统中的一个横截面点,日志功能是一个不可缺
少的元素,其位置举足轻重,不但关涉到应用系统的业务安全, 还是直接影响到系统运营过程中的健壮性与可维护性,如何简 单而有效的为信息系统装配日志服务是编程界的一个关注点, 也是未来进一步研究的方向。
参考文献:
[1] 刘崇富,张子锋,孔浩.基于J2EE架构的高校档案管理日志模块的设 计与实现[J].电脑开发与应用,2014,27⑴:54—56
[2] 李晓丽,李小红.基于Hook机制的Linux文件访问日志模块研究 [J].现代计算机:上下旬,2015,(20):59—
[3] 吴海涛,李福荣.基于AOP的人事档案日志模块设计与实现[J].计算 机与现代化,2016,(9):83-86
[4] 李化.使用Log4J在信息化项目中实现用户跟踪[J].电信交换,2010,(3):33-37
[5] 刘欢杰,魏静敏.关于log4j在日志中输出自定义信息的问题探讨[J]. 中国电子商务,2012,(5):37—37
[6] 郭节.基于Log4j改进的日志存储应用研究[J].软件导刊,2011,10(1): 60—61
(上接第175页)
按照电子信息类单片机课程进行教学。汽车单片机课程的教学 应该根据学生的实际能力,重在培养学生的动手实践能力,在 教学方面应该结合汽车的专业知识,如汽车的转向灯的控制, 汽车倒车测距等控制系统,这一系列内容既有单片机的知识, 也有与汽车专业知识相关。把仿真软件与protel软件结合起来, 完成一个采用单片机技术实现的项目内容。在教学过程中 可以对授课的内容可以进行相应的整合,有些过于复杂的列子 可以省去。
2.3激发学习兴趣
改变传统学习方式,老师讲,学生被动的听!采用现代教学 方式,把老师与学生的上课角色进行改变,学生是主角,老师是 配角。按照项目化教学方式,把项目任务分解,让学生承担任 务,根据任务的要求,去寻找任务的解决方法,有目的、有针对 性的学习。从而能把之前学习的离散知识块联系起来,不断提 高学生的综合学习的能力。高职学校的学生重在技能实践能 力,过多的理论研究只会让学生失去学习的兴趣。目标一旦明 确了,学生学习起来就有巨大的动力了,自学能力也在这个过 程中得到了很大的提高,有目标、有兴趣的学习,自然取得效果 是巨大的。
作者简介:
张娜(1982-),女,四川成都人,四川工商职业技术学院,硕士,讲 师,主要研究方向:电子信息、信号与信息处理、图形图像处理。期
[2] 颜廷秦,单片机教学方法探讨[J]职业技术2008年第8期
[3] 杨立生,单片机教学方法研究[J]中国现代教育装备2010年第17 期
[4] 王鹏,贺廉云,单片机教学中Proteus和Keil软件的应用[J]智能计算 机与应用2012年12月
3结束语
汽车单片机应用技术是高职汽车专业的专业基础课程,在 整个课程体系中有很大的作用。改变传统的教学方式,采用项 目化教学,有利于提高汽车单片机课程的教学效果,有助于整 个课程体系的建设。能为后续课程的学习打下坚实的基础,能 不断提高学生学习的积极性。
参考文献:
[1] 陈露军,张娜,任磊.C语言教学方法探讨[J]大众科技2011年第4
•158* 福建电脑
20185
年第期