起名软件工程概论总结第6章

花色中的具体选择

在每二个类下,引入

importorg.apache.commons.logging.Log;

importorg.apache.commons.logging.LogFactory;

在类里,申请3个大局LOG对象

private final Log logger = LogFactory.getLog(getClass());

在现实的艺术里面一贯利用即可:

logger.info(“登陆成功!”);

消息

web.xml中的设定

在web.xml中的详细设定如下:

<context-param> 
   <param-name>log4jConfigLocation</param-name> 
   <param-value>WEB-INF/log4j.properties</param-value> 
</context-param> 
<context-param> 
   <param-name>log4jRefreshInterval</param-name> 
   <param-value>60000</param-value> 
</context-param> 
<!-- 需要添加spring-web.jar包,否则用发生错误信息 -->
<listener> 
   <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

说明:

    
里头第叁局地正是力所能及动态修改log4j.properties的根本,容器会每60秒扫描log4j的安插文件
。对
于log4j的安插文件如何写,那就不多说了,大家能够去google,有好几正是我们只要用RollingFileAppender也许FileAppender时,能够通过${webapp.root}来恒定到服务器的昭示的该类型下,那是spring把web目录的门径压入到了
webapp.root的系统变量。然后,在log4j.properties
里就足以如此定义logfile地方log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs
/myfuse.log
借使有多个web应用,怕webapp.root变量重复,能够在context-param里定义webAppRootKey。当我们定义完
log4j.properties后,剩下的正是在须要记录的class中new 出Logger了。

  聚合是目的时期的三结合关系,即一个(或部分)对象是另三个指标的组合或局地。

1.
动态的变更记录级别和方针,即修改log4j.properties,不需求重启Web应用,这亟需在web.xml中安装一下。

(5)分布视图主要描述系统的物理构架,呈现系统硬件拓扑结构的风味,提要求开发职员、集成人士和测试人士。

1个类型的陈设的例证

下面给出的Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等全套功能。

log4j.rootLogger=INFO,CONSOLE,DATABASE

#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE

log4j.addivity.org.apache=true

########################

#Console Appender 

########################

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 

log4j.appender.Threshold=DEBUG 

log4j.appender.CONSOLE.Target=System.out 

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 

log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %c %m

#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n

########################

# File Appender 

########################

#log4j.appender.FILE=org.apache.log4j.FileAppender 

#log4j.appender.FILE.File=D:\\file.log 

#log4j.appender.FILE.Append=false 

#log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 

#log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

# Use this layout for LogFactor 5 analysis

######################## 

# Rolling File 

######################## 

#log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender 

#log4j.appender.ROLLING_FILE.Threshold=ERROR 

#log4j.appender.ROLLING_FILE.File=rolling.log 

#log4j.appender.ROLLING_FILE.Append=true 

#log4j.appender.ROLLING_FILE.MaxFileSize=10KB 

#log4j.appender.ROLLING_FILE.MaxBackupIndex=1 

#log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout 

#log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#################### 

# Socket Appender 

#################### 

#log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender 

#log4j.appender.SOCKET.RemoteHost=localhost 

#log4j.appender.SOCKET.Port=5001 

#log4j.appender.SOCKET.LocationInfo=true 

# Set up for Log Facter 5 

#log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout 

#log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n

######################## 

# Log Factor 5 Appender 

######################## 

#log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender 

#log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

######################## 

# SMTP Appender 

####################### 

#log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 

#log4j.appender.MAIL.Threshold=FATAL 

#log4j.appender.MAIL.BufferSize=10 

#log4j.appender.MAIL.From=chenyl@yeqiangwei.com

#log4j.appender.MAIL.SMTPHost=mail.hollycrm.com 

#log4j.appender.MAIL.Subject=Log4J Message 

#log4j.appender.MAIL.To=chenyl@yeqiangwei.com

#log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 

#log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

######################## 

# JDBC Appender 

####################### 

log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender 

log4j.appender.DATABASE.URL=jdbc:sqlserver://202.193.75.244:1433;DatabaseName=cab

log4j.appender.DATABASE.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver

log4j.appender.DATABASE.user=sa 

log4j.appender.DATABASE.password= 

log4j.appender.DATABASE.sql=INSERT INTO Log4j  VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%c', '%m') 

log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout 

log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 

#log4j.appender.A1.File=E:\\file.log 

#log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' 

#log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout

log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' 

log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout

 对象是系统中用来叙述客观事物的2个实体,它是结合系统的三个主导单位,由一组属性和对那组属性实行操作的一组服务组合。

Log4j详细设置验证

1 log4j.rootCategory=INFO, stdout , R

    
此句为将等级为INFO的日志音信输出到stdout和福特Explorer那多少个目标地,stdout和冠道的概念在底下的代码,能够肆意起名。等级可分为

OFF、FATAL、ELX570RO大切诺基、WA奇骏N、INFO、DEBUG、ALL,如若安插OFF则不打出其余音讯,如若布置为INFO那样只显示INFO,
WALX570N, E汉兰达RO奥迪Q3的

log音讯,而DEBUG音讯不会被显示,具体讲解可参看第贰部分概念配置文件中的logger。

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

   此句为定义名为stdout的输出端是哪类类型,能够是

org.apache.log4j.ConsoleAppender(控制台),

org.apache.log4j.FileAppender(文件),

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  具体讲解可参照第贰有的概念配置文件中的Appender。

4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

  此句为定义名为stdout的输出端的layout是哪一种档次,能够是

org.apache.log4j.HTMLLayout(以HTML表格形式布局),

org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

  具体讲解可参考第1片段定义配置文件中的Layout。

5 log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t]
%C.%M(%L) | %m%n

  假如采用pattern布局就要钦定的打字与印刷消息的切实格式ConversionPattern,打字与印刷参数如下:

%p: 输出日志音信优先级,即DEBUG,INFO,WA普拉多N,EPAJERORO本田UR-V,FATAL,
                   %d:
输出日志时间点的日子或时刻,默许格式为ISO8601,也得以在其后钦点格式,比如:%d{yyy
MMM dd HH:mm:ss,SSS},输出接近:二零零一年一月二1二十八日 22:10:28,921
                   %r: 输出自应用运营到输出该log音讯费用的皮秒数
                   %c: 输出日志消息所属的类目,平日便是所在类的人名
                   %t: 输出发生该日志事件的线程名
                   %l:
输出日志事件的发生地点,也正是%C.%M(%F:%L)的咬合,包蕴类目名、爆发的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
                   %x:
输出和当下线程相关联的NDC(嵌套诊断条件),特别用到像java
servlets那样的多客户多线程的接纳中。
                   %%: 输出二个”%”字符
                   %F: 输出日志消息发出时所在的文件名称
                   %L: 输出代码中的行号
                   %m: 输出代码中钦定的消息,产生的日志具体音讯
                   %n:
输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志音讯换行
能够在%与方式字符之间加上修饰符来控制其最小宽度、最大开间、和文件的对齐方式。如:
                    
1)%20c:钦命输出category的称谓,最小的肥瘦是20,假如category的称谓小于20的话,私下认可的事态下右对齐。
                    
2)%-20c:钦赐输出category的称谓,最小的大幅度是20,假设category的名称小于20的话,”-“号钦定左对齐。
                    
3)%.30c:钦定输出category的名称,最大的上涨幅度是30,假诺category的名目大于30的话,就会将左手多出的字符截掉,但低于30的话也不会有空格。
                    
4)%20.30c:要是category的名号小于20就补空格,并且右对齐,如若其名目长于30字符,就从左侧交远销出的字符截掉。

[QC]是log消息的初始,能够为私行字符,一般为品种简称。

  输出的新闻

[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning
cached instance of singleton bean ‘MyAutoProxy’

  具体讲解可参看第2片段概念配置文件中的格式化日志消息。

7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

  此句与第一行一样。定义名为PAJERO的输出端的项目为每日产生三个日记文件。8
log4j.appender.R.File=D: \\Tomcat 5.5 \\logs\\qc.log

  此句为定义名为Highlander的输出端的文本名为D: \\Tomcat 5.5
\\logs\\qc.log能够活动修改。

9 log4j.appender.R.layout=org.apache.log4j.PatternLayout

  与第4行相同。

10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c –
%m%n

  与第5行相同。

12 log4j.logger.com. neusoft =DEBUG

  钦命com.neusoft包下的全部类的级差为DEBUG。

  能够把com.neusoft改为自个儿项目所用的包名。

13 log4j.logger.com.opensymphony.oscache=ERROR

14 log4j.logger.net.sf.navigator=ERROR

  这两句是把那四个包下出现的谬误的级差设为E翼虎RO科雷傲,假若项目中向来不配置EHCache,则不须要那两句。

15 log4j.logger.org.apache.commons=ERROR

16 log4j.logger.org.apache.struts=WARN

  那两句是struts的包。

17 log4j.logger.org.displaytag=ERROR

  那句是displaytag的包。(QC难题列表页面所用)

18 log4j.logger.org.springframework=DEBUG

  此句为Spring的包。

24 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN

25 log4j.logger.org.hibernate=DEBUG

  此两句是hibernate的包。

以上那一个包的装置可根据项目标实在景况而活动定制。

(3)对象图描述了一组对象以及它们之间的关联,表示类的对象实例。

  1. 把log文件定在 /WEB-INF/logs/ 而不须求写相对路径。
  2. 可以把log4j.properties和别的properties一起放在/WEB-INF/
    ,而不是Class-Path。

(2)模型是对系统的架空意味

(1)系统是为特定目标而规划的由相互关系的几何局地组成的聚合,在那之中各样组成都部队分又有什么不可当做是2个更简便的类别,称为子系统。

(3)可知性:怎么着使贰个名字被外表识别和动用,它包蕴public、protected、private两种可知性,分别用“+”、“#”和“-”表示;

 封装是把对象的品质和服务组合成贰个独自的体系单位,并尽量隐藏对象的个中细节。

对象

(1)用例图定义了系统的效率须求,它完全是从系统的外表观察系统机能,并不描述系统内部对效果的有血有肉落实。

聚合

  多态性是指父类中定义的习性或劳动被子类继承后,能够享有分歧的数据类型或展现出不一样的行事。

  关联是目的属相之间的静态联系,它经过对象的个性来表现对象之间的信赖关系。

起名 1

面向对象的软件工程措施  1.面向对象分析
2.面向对象设计 3.面向对象编制程序 4.面向对象测试 5.面向对象维护

6.恢弘机制

(2)修饰:表明别的地点的底细特征

(2)范围:给3个称呼以特定含义的语境;

4.语义平整

(6)活动图反映系统从贰个移动到另三个运动的流程,强调对象间的支配流程。

  音信是指标发出的劳动请求,一般包含提供服务的目的标识、服务标识、输入新闻和回答音讯等音信。

  继承是指子类能够自行拥有父类的方方面面质量和劳动。

自律、标记值和构造型

用例视图、设计视图、进度视图、达成视图和遍布视图。

继承

(4)完整性:事物如何科学地、一致地互动交换;

统第②建工公司模语言UML

(2)类图描述系统的静态结构,表示系统中的类以及类与类之间的关联。

面向对象=对象+类+继承+通讯

(4)状态图表示二个状态机,强调对象行为的风波顺序。

软件建立模型的重要

软件建立模型概念

UML由视图,图,模型成分和集体机制等部分组成。

关联

系统、模型和视图

(8)分布图反映了系统中国总计机软件与技术服务总集团件和硬件的物理框架结构,表示系统运作时的处理结点以及结点中组件的铺排。

用例图、类图、状态图、顺序图、协作图、活动图、组件图、分布图

第伍章  面向对象基础 

起名,3.模型成分

(3)视图是从某二个侧面对系统模型的关心

(1)命名:为东西、关系和图起名;

(2)设计视图用来发布系统功效的个中设计和合营境况。

面向对象方法概述

(7)组件图描述组件以及它们之间的关系,表示系统的静态完成视图。

在软件系统开发进度中,建模的一个重中之重原由在于描述系统的复杂。另三个主要原因是有利沟通。最终,模型还为现在的软件维护和提高提供了文书档案。

(4)完结视图由一些单独的预制构件和文件组成,显示完结模块及其之间的借助关系。

5.公共机制

1.视图

  类是有着相同属性和劳动的一组对象的聚集,它为属于此类的百分百对象提供了联合的空洞描述,个中间包含属性和劳动三个首要部分。

2.图

(5)可执行性:运转或模拟动态模型的意思是怎么。

(3)进度视图描述系统的面世工作场景,它涵盖形成系统现身与共同机制的线程和进度,首要提必要系统开发商和集成商使用。

(1)表明:UML不只是一个图纸语言,它还明确了对于每1个UML图形的文字表明的语法和语义。

(1)用例视图描述系统应该有着的功效集,它从系统外部用户的角度出发,达成对系统的空洞意味。

封装

(3)通用划分:型—实例、接口—落成。

面向对象基本概念

UML是一种可视化的,可用来详细描述,文书档案化,可组织的言语。

(4)扩展机制:扩大UML或使其用户化,便于形成软件系统的费用。

 

(5)顺序图和同盟图均代表一组对象事件的动态合营关系,个中顺序图放映对象时期发送信息的时刻种种,合作图反映收发音讯的对象的协会协会。

多态性

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图