u工程目录(iCentroView/projects/MyProject/config)下的XML配置文件:
7.Port.xml
uiCV系统目录(iCentroView/config)下的XML配置文件:
u工程目录下的配置文件:
<?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超时时间值,单位秒。
<?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:会话过期时间,单位秒。
<?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:检测事件/报警是否超过有效期或记录数超限的周期,单位秒。
<?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:一次性将缓存中记录归档到文件中的记录数,即记录数达到该值时,统一轨道到文件,单位记录数。
<?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" />
<?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的核数。
<?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>
功能:端口配置文件。
一般无需更改,与其它应用冲突时可通过更改本配置文件,然后重启服务的方式修改服务端口。
<?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,重启。进程被关闭或异常退出时,是否自动启动。
<?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毫秒全量推送一次。
<?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为表数据同步周期,单位毫秒。
<?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忽略。
<?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系统目录下的配置文件:
<?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:发送数据超时时间,单位秒。
<?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:发送数据超时时间,单位秒。
<?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.Kernel的Category名,就查找节点名称为iHyperDB的Category,使用其输出格式)。 |
表 Category下的output子节点
Item |
Type |
Default |
Description |
appender |
|
|
与相应的Appender节点关联 |
priority |
trace |
|
输出trace(含)以上等级的日志信息 |
debug |
|
输出debug(含)以上等级的日志信息 |
|
info |
|
输出info(含)以上等级的日志信息 |
|
warn |
|
输出warn(含)以上等级的日志信息 |
|
error |
Y |
输出error(含)以上等级的日志信息 |
|
fatal |
|
输出fatal(含)以上等级的日志信息 |