ICV深度配置

Navigation:  其他 >

ICV深度配置

Previous pageReturn to chapter overviewNext page

u工程目录(iCentroView/projects/MyProject/config)下的XML配置文件:

1.controlcfg.xml

2.cvsoapsvr.xml

3.EAServiceCfg.xml

4.HTDLocalCfg.xml

5.LogConfig.xml

6.pbscanner.xml

7.Port.xml

8.ProcessMgr.xml

9.rdastub.xml

10.RMDataSync.xml

11.RMService.xml

12.rmsvrfixedcfg.xml

 

uiCV系统目录(iCentroView/config)下的XML配置文件:

1.Buffer.xml

2.HD3Buffer.xml

3.LogClient.xml

 

u工程目录下的配置文件:

1.controlcfg.xml

<?xml version="1.0" encoding="GB2312"?>

<control t1switch="0" t1timeout="120" t2switch="1" t2timeout="3">        

</control>

 

功能:控制命令时效性配置文件。

t1switch:t1超时开关。0,关;1,开。t1超时,即网络超时,从客户端发送到服务端接收到的超时时间。

t1timeout:t1超时时间值,单位秒。

t2switch:t2超时开关。0,关;1,开。t2超时,服务端从接收到控制命令,到驱动接收到控制命令的超时时间。

t2timeout:t2超时时间值,单位秒。

 

2.cvsoapsvr.xml

<?xml version="1.0" encoding="UTF-8" ?>

<CVSOAPSVR recvtimeout="45" sendtimeout="45" connectiontimeout="25" accepttimeout="60" backlog="100" sessionexpirysecs="600">

</CVSOAPSVR>

 

功能:soap服务配置文件。

recvtimeout:接收超时,单位秒。

sendtimeout:发送超时,单位秒。

connectiontimeout:连接超时,单位秒。

accepttimeout:套接字接受超时,单位秒。

backlog:后备连接数。

当TCP接收一个连接后(三次握手通过)会将此连接存在连接请求队列里面,并对队列个数+1,而backlog为此队列允许的最大个数,超过此值,则直接将新的连接删除,即不在接收新的连接。将这些处于请求队列里面的连接暂记为后备连接,这些都在底层自动完成,底层将连接添加到队列后等待上层来处理(一般是调用accept函数接收连接);

当上层调用accept函数接收一个连接(处于请求队列里面的后备连接),队列个数会-1;

那么这样一个加一个减,只要底层提交的速度小于上层接收的速度(一般是这样),很明显backlog就不能限制连接的个数,只能限制后备连接的个数。那为啥要用这个backlog呢?主要用于并发处理,当上层没来的及接收时,底层可以提交多个连接。

sessionexpirysecs:会话过期时间,单位秒。

 

3.EAServiceCfg.xml

<?xml version="1.0" encoding="gb2312"?>

<EAService>

<Archive>

<Expire KeepDays="90" />

<Limit EALimit="100000" EAOffset="1000" ArchLimit="100000"/>

<Destination Path="RTD/EAArchieve" MaxFileNumber="0"/>

<Check Interval="30" />

</Archive>

</EAService>

 

功能:事件报警服务配置文件。

KeepDays:事件/报警保存天数,单位天。

EALimit:事件/报警历史记录上限数,单位记录数。

EAOffset:事件/报警一次性清除量,单位记录数。

ArchLimit:事件/报警归档文件最大记录数。

Destination Path:事件/报警归档文件路径。

MaxFileNumber:事件/报警归档文件最大个数。

Check Interval:检测事件/报警是否超过有效期或记录数超限的周期,单位秒。

 

4.HTDLocalCfg.xml

<?xml version="1.0" encoding="gb2312" ?>

<HTD>

<Collector>

<MemCacheMaxNumCacheFile="50" MaxSizeCacheFile="20" SizeCacheMem="65536" />

<DataSenderHTDServerIP="127.0.0.1" ShMDeque="disable" />

</Collector>

<Server>

<QuerySvrQueryThreadNum="2" />

<HistTagMaxTagValueKeptInMem="20" SecPeriodPerHistFile="3600" />

 <RedundanceMaxNumCacheFile="50" MaxSizeCacheFile="20" SizeCacheMem="65536" />

</Server>

</HTD>

 

功能:趋势服务配置文件。

趋势采集器配置:

MaxNumCacheFile:缓存文件最大个数。

MaxSizeCacheFile:缓存文件尺寸最大值,单位M。

SizeCacheMem:一次性将缓存中记录归档到文件中的记录数,即记录数达到该值时,统一轨道到文件,单位记录数。

HTDServerIP:趋势服务IP地址,目前都为本机。

ShMDeque:是否启用共享内存。“enable”,启用;“disable”,不启用。

 

趋势服务配置:

QueryThreadNum:查询线程数。

MaxTagValueKeptInMem:内存中保存的最大记录数。

SecPeriodPerHistFile:一个归档文件存储的记录时间跨度,单位秒。比如3600表示一个文件包含一个小时的数据。

MaxNumCacheFile:缓存文件最大个数。

MaxSizeCacheFile:缓存文件尺寸最大值,单位M。

SizeCacheMem:一次性将缓存中记录归档到文件中的记录数,即记录数达到该值时,统一轨道到文件,单位记录数。

 

 

5.LogConfig.xml

<?xml version="1.0" encoding="gb2312"?>

<LogConfChkCfgMdfyPeriod="5">

<!--ChkCfgMdfyPeriod表示每隔多长时间检查一下配置文件的更改,不设置时默认10s -->

<!--日志级别由高到低分别为:CRITICAL ERROR WARNING INFO DEBUG -->

<!--日志名称与日志文件名同步,大小写敏感 -->

<General CurrentLogLV = "WARNING" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<!--SaveDays表示按天保存日志文件,并保存多少天, 当设置SaveDays>0时,FileMaxKb与FileMaxNo失效-->

<CVProcMngrCurrentLogLV = "WARNING" SaveDays="30"  FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<CCAgentCurrentLogLV = "WARNING" SaveDays="14"  FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<CVSockCurrentLogLV = "WARNING" SaveDays="3" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<RMServiceCurrentLogLV = "WARNING" SaveDays="3" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<!--<IOMBTCP CurrentLogLV = "INFO" SaveDays="3"  FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" /> -->

<OPCDRV CurrentLogLV = "WARNING" SaveDays="3"  FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<RDA CurrentLogLV = "ERROR" SaveDays="7"  FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<pbscannerCurrentLogLV = "INFO" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<rdastubCurrentLogLV = "DEBUG" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<modbusCurrentLogLV = "DEBUG" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<drvctrlCurrentLogLV = "DEBUG" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

<CIPDriverCurrentLogLV = "DEBUG" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

</LogConf>

 

功能:日志配置文件。

日志级别由高到低分别为:CRITICAL ERROR WARNING INFO DEBUG。

日志名称与日志文件名同步,大小写敏感。

ChkCfgMdfyPeriod:检测配置文件是否有更新的周期,单位秒。

 

<General CurrentLogLV = "WARNING" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

通用配置,下面无具体配置时,使用通用配置。

CurrentLogLV:报警级别。

SaveDays:日志保存天数。

FileMaxKb:日志文件大小最大值,单位Kb。

FileMaxNo:日志文件最大个数。

LogOnMonitor:是否在console中打印日志。0,不打印;1,打印。

其中,SaveDays>0,表示按天保存日志文件,SaveDays的值表示保存的天数,此时,FileMaxKb与FileMaxNo失效;当SaveDays=0,表示按照文件数保存日志,FileMaxKb与FileMaxNo生效。

 

若要个性化配置某应用的日志,请拷贝一行,并且修改为该应用的日志文件名称,其它配置同上。比如,要查看报警列表的Debug日志,但不想改通用配置以减少日志量,可按照如下配置:

<AlarmReportControl2CurrentLogLV = "DEBUG" SaveDays="5" FileMaxKb="100" FileMaxNo = "3" LogOnMonitor="1" />

 

6.pbscanner.xml

<?xml version="1.0" encoding="GB2312"?>

<!-- alarmpersist 报警是否持久化 -->

<!-- interval 持久化周期 -->

<!-- AuthRefreshInterval 权限刷新周期 -->

<!-- synctime 非活动机报警同步周期 -->

<!-- thread_pool_size 线程个数 -->

<!-- thread_pool_size the count of the total threads -->

<pbscanner  alarmpersist="0" interval="60" AuthRefreshInterval="99" synctime="180" thread_pool_size="1">        

</pbscanner>

 

功能:pbscanner服务配置文件。

alarmpersist:报警是否持久化,目的是防止重起时报警重新产生。0,不持久化;1,持久化。

interval:报警持久化周期,单位秒。

AuthRefreshInterval:权限刷新周期,单位秒。为提高权限验证的效率,将权限信息加载到内存中,此配置为检测权限更新的周期。

synctime:(iCV5.6.2 P7新增功能)非活动机报警同步周期,单位是秒。

thread_pool_size:(iCV5.6.2 P7新增功能)线程个数,默认为1,最大值不建议超过cpu的核数。

 

7.Port.xml

<?xml version="1.0" encoding="GB2312"?>

<Port>

 <Service name="AMService">50000</Service>

 <Service name="CCService">50001</Service>

 <Service name="RMDataSync">50002</Service>

 <Service name="CRService">50003</Service>

 <Service name="RDAStub">50004</Service>

 <Service name="EAService">50005</Service>

 <Service name="IODataSync">50006</Service>

 <Service name="CCAgent">50007</Service>

 <Service name="HTDService">50008</Service>

<Service name="VideoService">50009</Service>

<Service name="DisplaywallService">50010</Service>

<Service name="LedService">50011</Service>

<Service name="CVProcessMgr">50012</Service>

<Service name="PDB_Alarm">50013</Service>

<Service name="DrvCtrl">50015</Service>

<Service name="dbproxyservice">50016</Service>

<Service name="cvsoapsvr">50017</Service>

</Port>

 

功能:端口配置文件。

一般无需更改,与其它应用冲突时可通过更改本配置文件,然后重启服务的方式修改服务端口。

 

8.ProcessMgr.xml

<?xml version="1.0" encoding="GB2312"?>

<ProcessMgr version="2" desc="Platform= 1(win) 2(unix) or 3(all), ModuleName not include .exe">        

 <ProcessList>

<Process ModuleName="RMService" DisplayName="冗余协调服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="AMService" DisplayName="权限管理服务" Platform="3" SleepTime="0"  RestartEnable='1'></Process>

<Process ModuleName="PbScanner" DisplayName="过程数据库服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="RMDataSync" DisplayName="冗余数据同步服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="RDAStub" DisplayName="过程数据访问代理服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="IODataSync" DisplayName="驱动数据同步服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="EAService" DisplayName="事件报警服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="CRService" DisplayName="联动服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="CCService_Obj" DisplayName="集中配置服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="SqlTransfer" DisplayName="Odbc转储服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="VideoService" DisplayName="视频服务" Platform="1" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="DisplayWallServer" DisplayName="大屏服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

         <Process ModuleName="LedService" DisplayName="LED服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="DrvCtrl" DisplayName="驱动管理器" Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="HTDService" DisplayName="历史趋势服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="HTDCollect" DisplayName="历史趋势采集服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="DBProxyService" DisplayName="数据库代理访问服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

<!--Process ModuleName="TagMonitor" DisplayName="直流屏服务" Platform="3" SleepTime="0" RestartEnable='1'></Process-->

         <Process ModuleName="CVCCAgent" DisplayName="集中配置部署代理服务"  Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="cvsoapsvr" DisplayName="SOAP转发服务"  Platform="1" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="ihdtransfer" DisplayName="IHD转储服务"  Platform="1" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="ihd3transfer" DisplayName="IHD3转储服务"  Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="imvdataproxyservice" DisplayName="IMV代理服务"  Platform="3" SleepTime="0" RestartEnable='1'></Process>

<Process ModuleName="modbusserver" DisplayName="ModbusTcp服务"  Platform="3" SleepTime="0" RestartEnable='1'></Process>

 </ProcessList>

</ProcessMgr>

 

功能:服务进程管理器配置文件。

进程管理器按照本文件中的顺序启动和关闭进程。本文件中的进程必须基于CServiceBase才能被进程管理器管理。

举例说明,比如:

<Process ModuleName="RMService" DisplayName="冗余协调服务" Platform="3" SleepTime="0" RestartEnable='1'></Process>

ModuleName:进程名称,不含“.exe”。

DisplayName:进程管理器中显示的名称。

Platform:支持运行的平台,1(win) 2(unix) or 3(all)。

SleepTime:等待时间,单位秒。表示在启动本进程前等待的时间,一般用于前后有关联的进程,需要等待前进程启动成功后再启动本进程。

RestartEnable:是否重启。0,不重启;1,重启。进程被关闭或异常退出时,是否自动启动。

 

9.rdastub.xml

<?xml version="1.0" encoding="GB2312"?>

<rdastub version="1" desc="thread pool size" thread_pool_size="4"refreshtime="600">        

</rdastub>

 

功能:rdastub服务配置文件。

thread_pool_size:线程数。本线程数为客户端管理线程数,比如,线程数配置为20,当前连接客户端数为15,则每个客户端一个线程;若当前连接客户端为40,则2个客户端一个线程。

refreshtime:rdastub定期全量推送数据刷新时间。单位毫秒。例如:refreshtime="600",表示每隔600毫秒全量推送一次。

 

10.RMDataSync.xml

<?xml version="1.0" encoding="UTF-8"?>

<RMDataSync>

 <SQLiteCopyDB>

         <CopyDB interval="10000" dbname="config/VideoInfo.db">

                 <TableName>t_video_mode</TableName>

                 <TableName>t_video_psp</TableName>

                 <TableName>t_video_snap</TableName>

         </CopyDB>

         <CopyDB interval="3000" dbname="config/DWInfo.db">

                 <TableName>t_dw_mode</TableName>

         </CopyDB>

         <CopyDB interval="3000" dbname="config/LedInfo.db">

                 <TableName>t_led_device_display</TableName>

                 <TableName>t_led_fast_pic</TableName>

                 <TableName>t_led_fast_text</TableName>

                 <TableName>t_led_pic</TableName>

                 <TableName>t_led_scheme</TableName>

                 <TableName>t_led_scheme_item</TableName>

                 <TableName>t_led_usual_words</TableName>

         </CopyDB>

<CopyDB interval="3000" dbname="config/crs.db">

<TableName>t_crs_schemes</TableName>

<TableName>t_crs_schemeitems</TableName>

</CopyDB>

<CopyDB interval="2000" dbname="data/addrvalue.db">

<TableName>t_drv_addr</TableName>

</CopyDB>

<CopyDB interval="5000" dbname="config/CVDWInfo.db">

 <TableName>t_dw_curlayout</TableName>

 <TableName>t_dw_cycle</TableName>

 <TableName>t_dw_cycsigrelations</TableName>

 <TableName>t_dw_laycontent</TableName>

 <TableName>t_dw_layout</TableName>

 <TableName>t_dw_powerstatus</TableName>

 <TableName>t_dw_status</TableName>

 <TableName>t_vedio_signal</TableName>

</CopyDB>

</SQLiteCopyDB>

</RMDataSync>

 

功能:冗余数据同步服务配置文件。

本配置文件主要配置sqlite表数据同步,数据同步服务按照本配置文件的配置,周期性将指定db中的表从活动机导出,导入到非活动机。

db文件的相对路径为当前工程。

举例:

<CopyDB interval="2000" dbname="data/addrvalue.db">

<TableName>t_drv_addr</TableName>

</CopyDB>

将当前工程下的sqlite文件“data/addrvalue.db”(该文件为中间变量持久化文件,默认路径 C:\iCentroView\projects\defaultproject\data\addrvalue.db)中的表“t_drv_addr”每2000毫秒一次,周期性导入到非活动机中。

interval为表数据同步周期,单位毫秒。

 

11.RMService.xml

<?xml version="1.0" encoding="GB2312" ?>

<RMService version="2" sequence="0">

<Strategy>

 <Interval>200</Interval>

 <Threshold>5</Threshold>

</Strategy>

<Ping Using="0">

 <IP>127.0.0.1</IP>

 <Interval>3</Interval>

 <Threshold>5</Threshold>

 <Timeout>5</Timeout>

</Ping>

<PeerCommunicator type="CRMUDPComm">

 <PortList>

         <Port>9876</Port>

         <Port>9877</Port>

 </PortList>

 <PeerList>

         <Peer sequence="0">

                 <IP id="0">10.241.221.29</IP>

         </Peer>

         <Peer sequence="1">

                 <IP id="0">10.241.221.30</IP>

         </Peer>

 </PeerList>

</PeerCommunicator>

</RMService>

 

功能:冗余服务配置文件。

Strategy:心跳检测策略。

Interval:检测周期,单位毫秒,默认200,即200毫秒发一次心跳给冗余机。

Threshold:检测次数,连续几次收不到对方心跳后切换冗余状态。

Ping:第三方IP网络辅助检测策略

Using:是否启用第三方IP校验。0,不起用;1,启用。

IP:第三方IP地址。

Interval:检测周期,单位秒。

Threshold:检测次数,连续几次ping失败认为网络断开。

Timeout:ping超时时间,单位秒。

PeerCommunicator type:心跳通讯方式,目前只支持UDP,请保持默认值“CRMUDPComm”不变。

PortList:UDP端口,需配置2个,默认9876、9877,心跳会向两个端口同时发送,只要有一个端口接收到就认为心跳正常。

PeerList:主备冗余配置的顺序。

Sequence:配置顺序号,主机0,备机1。

IP:主备机IP地址。id忽略。

 

12.rmsvrfixedcfg.xml

<?xml version="1.0" encoding="GB2312" ?>

<!-- heartbeatstyle: 0 udp & tcp; 1 tcp only; 2 udp only -->

<RMService version="2" heartbeatstyle="0">

 <Strategy>

   <Interval>200</Interval>

   <Threshold>5</Threshold>

 </Strategy>

 <PortList>

   <Port>9876</Port>

   <Port>9877</Port>

 </PortList>

 <Ping>

   <Interval>1</Interval>

   <Threshold>3</Threshold>

   <Timeout>1</Timeout>

</Ping>

</RMService>

 

heartbeatstyle的参数为0时候,默认udp和tcp都作为冗余的判断机制,只要有一个判断连接成功就不切换主备状态。参数为1则启动tcp的判断机制,参数为2启动udp判断机制。

 

u系统目录下的配置文件:

1.Buffer.xml

<?xml version="1.0" encoding="utf-8"?>

<Buffer version = "1.1" name = "cvhdBuffer">

<CacheFile Path ="CacheFile" Prefix = "Buffer" SizeMb = "1024"/>

<Send PeriodMs ="5000" ConnTimeOutSec = "3" SendTimeOutSec = "3"/>

</Buffer>

 

功能:ihd2数据转储服务ihdtransfer缓存配置文件。若存在该文件,则启用缓存,否则不启用缓存。

name:buffer服务名称,默认值cvhdBuffer。

CacheFile Path:缓存文件路径,可根据需要指定到其它磁盘。默认值“CacheFile”,按照默认安装,即路径“C:\iCentroView\executable\CacheFile”。

Prefix:缓存文件名称前缀。

SizeMb:缓存文件大小,单位M。

PeriodMs:缓存数据最大时间,单位毫秒。缓存文件按照块发送,默认4k,在数据未积累到4k时,若与上次发送时间间隔超过本配置周期,则直接发送。

ConnTimeOutSec:连接实时数据库服务超时时间,单位秒。

SendTimeOutSec:发送数据超时时间,单位秒。

 

2.HD3Buffer.xml

<?xml version="1.0" encoding="utf-8"?>

<Buffer version = "1.2" name = "cvhd3Buffer" memsizemb = "512">

<CacheFile Path ="hd3CacheFile" Prefix = "Buffer" SizeMb = "4095"/>

<Send PeriodMs ="5000" ConnTimeOutSec = "3" SendTimeOutSec = "3"/>

</Buffer>

 

功能:Ihd3数据转储服务ihd3transfer缓存配置文件。若存在该文件,则启用缓存,否则不启用缓存。

name:buffer服务名称,默认值cv3hdBuffer。

memsizemb:hdBufferAPI和buffer之间的共享内存大小,单位M。

CacheFilePath:缓存文件路径,可根据需要指定到其它磁盘。默认值“hd3CacheFile”,按照默认安装,即路径“C:\iCentroView\executable\hd3CacheFile”。

Prefix:缓存文件名称前缀。

SizeMb:缓存文件大小,单位M。

PeriodMs:缓存数据最大时间,单位毫秒。缓存文件按照块发送,默认1M,在数据未积累到1M时,若与上次发送时间间隔超过本配置周期,则直接发送。

ConnTimeOutSec:连接实时数据库服务超时时间,单位秒。

SendTimeOutSec:发送数据超时时间,单位秒。

 

3.LogClient.xml

<?xml version="1.0" encoding="utf-8" ?>

<logc version = "1.5">

<config>

<reload>1</reload>

<reloadperiod>60</reloadperiod>

</config>

<rollingpolicy name="sizerolling" type="sizewin" maxsize="20480000" maxnum="20" />

<layout name="basic" type="basic" datetype="dot" errcode="has" codelocation="has" threadid="no" processname="no" />

<appender name="BufferFile" type="rollingfile" logdir="Log/" prefix="Buffer" rollingpolicy="sizerolling" layout="basic" />

<appender name="BufferConsole" type="console" layout="basic" />

 

<category name="iHyperDB.Buffer">

<output appender="BufferFile" priority="trace" />

<output appender="BufferConsole" priority="error" />

</category>

</logc>

 

功能:实时数据库客户端日志配置文件。在iCV中主要用于API、buffer的日志配置。

Config节点包含日子系统配置文件是否动态重载,以及重载的周期等信息,如下表所示。

表        Config节点

Item

Type

Default

Description

reload

1

Y

需要重载配置文件

0

 

不需要重载配置文件

reloadperiod

60

60秒重载一次配置文件

 

 

Rollingpolicy节点描述了日志采用文件输出方式的具体细节。具体包含:日志文件的命名规则、日志文件循环使用的方式(“大小型”和“时间型”)、单个日志文件的大小限制、运行期间日志文件的最大保存数目等信息,具体如下表所示。

表        Rollingpolicy节点

Item

Type

Default

Description

name

 

 

日志循环策略名

type

sizewin

Y

以文件大小进行文件循环

timewin

 

以周期时间进行文件循环,同时单个文件有大小限制

period

month

 

以月为周期进行文件循环

day

 

以天为周期进行文件循环

hour

 

以小时为周期进行文件循环

maxsize

字节

 

单个日志文件的最大值(不能超过2g)

maxnum

 

日志文件个数上限(必须大于1

 

Layout节点描述了输出的日志包含的信息内容,这些信息都是可配的。具体包含:日期格式、错误码、错误代码的位置、线程ID、进程名以及进程ID。具体如下表所示。

表        Layout节点

Item

Type

Default

Description

name

 

 

日志输出格式名

type

basic

 

系统提供的日志输出格式类型

custom

 

用户自定义日志输出格式类型

datetype

hyphen

 

“-”分割日期,如2001-03-14

dot

Y

“.”分割日期,如2001.03.14

errorcode

has

y

输出错误码

no

 

不输出错误码

codelocation

has

Y

输出代码位置,如文件名、函数名、行号

no

 

不输出代码位置,如文件名、函数名、行号

threadid

has

Y

输出线程ID

no

 

不输出线程ID

processname

has

Y

输出进程名和进程ID

no

 

不输出进程名和进程ID

 

Appender节点描述了日志输出的具体方式,包括:文本、控制台、自定义。此外,还指定了采用文本输出时目录信息、文件前缀、循环方式以及周期等信息。具体如下表所示。

表        Appender节点

Item

Type

Default

Description

name

 

 

日志输出方式名

type

rollingfile

Y

日志以文本格式输出,必要属性有logdir, prefix, rollingpolicy, layout

console

 

日志以控制台格式输出,必要属性有layout

custom

 

用户自定义输出格式

logdir

 

C:\

日志输出路径

prefix

 

myprefix

日志文件的命名前缀

rollingpolicy

sizerollingpolicy

Y

以文件大小进行文件循环

monthrollingpolicy

 

以月为周期进行文件循环

dayrollingpolicy

 

以天为周期进行文件循环

hourrollingpolicy

 

以小时为周期进行文件循环

layout

basic

Y

basic型的layout输出

 

Category节点只有一个属性name,同一个name可以包含多个output子节点。子节点output包含了appender和priority属性,其中appender属性对应到Appender节点,日志系统启动后用户不可更改,而priority属性是用户可以动态修改的,用于设置日志输出的最小等级。具体如下表所示。

表        Category节点

Item

Type

Default

Description

name

 

 

日志输出格式参数名。如某个Category名不存在,则使用其父亲名对应的输出格式(例如:如果不存在iHyperDB.KernelCategory名,就查找节点名称为iHyperDBCategory,使用其输出格式)。

 

表        Category下的output子节点

Item

Type

Default

Description

appender

 

 

与相应的Appender节点关联

priority

trace

 

输出trace()以上等级的日志信息

debug

 

输出debug()以上等级的日志信息

info

 

输出info()以上等级的日志信息

warn

 

输出warn()以上等级的日志信息

error

Y

输出error()以上等级的日志信息

fatal

 

输出fatal()以上等级的日志信息