K2 BlackPearl中日志记录的设置与扩展
2008-06-16 16:55
357 查看
K2 BlackPearl的日志提供了多种方式来记录K2的信息,日志配置在C:\Program Files\K2 blackpearl\Host Server\Bin\HostServerLogging.config中,打开配置文件,可以看到下面的片段:
<ApplicationLevelLogSettings>
<ApplicationLevelLogSetting Scope="Default">
<LogLocationSettings>
<LogLocation Name="ConsoleExtension" Active="True" LogLevel="Debug" />
<LogLocation Name="FileExtension" Active="False" LogLevel="All" />
<LogLocation Name="EventLogExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="ArchiveExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="MSMQExtension" Active="False" LogLevel="Debug" />
</LogLocationSettings>
</ApplicationLevelLogSetting>
</ApplicationLevelLogSettings>
Name对应此config文件的Extensions节点中的Extension节点的Name属性,在下面可以看到。
Active控制是否使用此配置项,因此我们可以看出,默认情况下,K2只使用“ConsoleExtension”,也就是控制台模式。
LogLevel控制日志的级别。为了看到更详细的信息,我们调节这个属性来实现,从简单到详细依次是Warning->Error->Info->Debug->All
K2的调试:
在管理工具-服务中将K2服务停止,然后点击开始菜单的K2 blackpearl-K2 Server,此时K2会以控制台模式来启动服务,K2的相关信息就可以方便的看到,在我们的代码中使用Console.WriteLine("message") 可以方便的输出到这里。
<ApplicationLevelLogSettings>
<ApplicationLevelLogSetting Scope="Default">
<LogLocationSettings>
<LogLocation Name="ConsoleExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="FileExtension" Active="False" LogLevel="All" />
<LogLocation Name="EventLogExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="ArchiveExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="MSMQExtension" Active="False" LogLevel="Debug" />
</LogLocationSettings>
</ApplicationLevelLogSetting>
<ApplicationLevelLogSetting Scope="SourceCode.Security.UserRoleManager.Runtime.UserRoleManagerServer">
<LogLocationSettings>
<LogLocation Name="ConsoleExtension" Active="True" LogLevel="Error" />
</LogLocationSettings>
</ApplicationLevelLogSetting>
</ApplicationLevelLogSettings>
我们可以看到,这里有两个ApplicationLevelLogSetting节点,不同的是两个ApplicationLevelLogSetting的Scope不同。具体情形我还没有具体尝试,抱歉,因为这样的扩展实现的效果非常有限。下面具体来说下另外一种方式的扩展:
在HostServerLogging.config,找到Extensions节点,可以看到这样的配置:
<Extensions>
<Extension Name="ConsoleExtension" type="SourceCode.Logging.Extension.ConsoleExtension">
<Property Name="Shorthand" value="true"/>
</Extension>
<Extension Name="EventLogExtension" type="SourceCode.Logging.Extension.EventLogExtension" />
<Extension Name="FileExtension" type="SourceCode.Logging.Extension.FileExtension">
<Property Name="LogFileName" value="HostServer.log"/>
<Property Name="LogFilePath" value="" />
<Property Name="HashAlgorithm" value="CRC32" />
</Extension>
<Extension Name="MSMQExtension" type="SourceCode.Logging.Extension.MSMQExtension">
<Property Name="QueuePath" value=".\private$\SCQueue"/>
</Extension>
<Extension Name="ArchiveExtension" type="SourceCode.Logging.Extension.ArchiveExtension">
<Property Name="HostServerConfigFileName" value="K2HostServer.config"/>
<Property Name="ConfigDBConnectionName" value="HostserverDB"/>
</Extension>
</Extensions>
在这里我们可以清楚的看到第一段XML中的ConsoleExtension,FileExtension,EventLogExtension等节点的Name是从哪里来的了。在这里我们来添加自己的扩展配置,例如发送Email。首先我们编写自定义扩展的代码,继承BaseExtension,只需重写一个方法:
using System;
using SourceCode.Logging;
using SourceCode.Logging.Extension;
using System.Net.Mail;
namespace LoggerExtension
{
{
{
{
{
{
throw;
}
return;
}
}
}
看得出来,非常简单 :)
然后在上面所示的Extensions节点中加入自定义扩展的一个节点
<Extension Name="EmailExtension" type="LoggerExtension.Email" location="C:\LoggerExtension.dll"></Extension>
type是我们扩展代码dll的namespace.class,location是这个dll的所在位置。
对应着LogLocationSettings节点中也加入一个节点,注意两个Name要匹配.
<LogLocation Name="EmailExtension" Active="True" LogLevel="All" />
最后保存config文件,一个日志记录的扩展设置就OK了。
<ApplicationLevelLogSettings>
<ApplicationLevelLogSetting Scope="Default">
<LogLocationSettings>
<LogLocation Name="ConsoleExtension" Active="True" LogLevel="Debug" />
<LogLocation Name="FileExtension" Active="False" LogLevel="All" />
<LogLocation Name="EventLogExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="ArchiveExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="MSMQExtension" Active="False" LogLevel="Debug" />
</LogLocationSettings>
</ApplicationLevelLogSetting>
</ApplicationLevelLogSettings>
Name对应此config文件的Extensions节点中的Extension节点的Name属性,在下面可以看到。
Active控制是否使用此配置项,因此我们可以看出,默认情况下,K2只使用“ConsoleExtension”,也就是控制台模式。
LogLevel控制日志的级别。为了看到更详细的信息,我们调节这个属性来实现,从简单到详细依次是Warning->Error->Info->Debug->All
K2的调试:
在管理工具-服务中将K2服务停止,然后点击开始菜单的K2 blackpearl-K2 Server,此时K2会以控制台模式来启动服务,K2的相关信息就可以方便的看到,在我们的代码中使用Console.WriteLine("message") 可以方便的输出到这里。
<ApplicationLevelLogSettings>
<ApplicationLevelLogSetting Scope="Default">
<LogLocationSettings>
<LogLocation Name="ConsoleExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="FileExtension" Active="False" LogLevel="All" />
<LogLocation Name="EventLogExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="ArchiveExtension" Active="False" LogLevel="Debug" />
<LogLocation Name="MSMQExtension" Active="False" LogLevel="Debug" />
</LogLocationSettings>
</ApplicationLevelLogSetting>
<ApplicationLevelLogSetting Scope="SourceCode.Security.UserRoleManager.Runtime.UserRoleManagerServer">
<LogLocationSettings>
<LogLocation Name="ConsoleExtension" Active="True" LogLevel="Error" />
</LogLocationSettings>
</ApplicationLevelLogSetting>
</ApplicationLevelLogSettings>
我们可以看到,这里有两个ApplicationLevelLogSetting节点,不同的是两个ApplicationLevelLogSetting的Scope不同。具体情形我还没有具体尝试,抱歉,因为这样的扩展实现的效果非常有限。下面具体来说下另外一种方式的扩展:
在HostServerLogging.config,找到Extensions节点,可以看到这样的配置:
<Extensions>
<Extension Name="ConsoleExtension" type="SourceCode.Logging.Extension.ConsoleExtension">
<Property Name="Shorthand" value="true"/>
</Extension>
<Extension Name="EventLogExtension" type="SourceCode.Logging.Extension.EventLogExtension" />
<Extension Name="FileExtension" type="SourceCode.Logging.Extension.FileExtension">
<Property Name="LogFileName" value="HostServer.log"/>
<Property Name="LogFilePath" value="" />
<Property Name="HashAlgorithm" value="CRC32" />
</Extension>
<Extension Name="MSMQExtension" type="SourceCode.Logging.Extension.MSMQExtension">
<Property Name="QueuePath" value=".\private$\SCQueue"/>
</Extension>
<Extension Name="ArchiveExtension" type="SourceCode.Logging.Extension.ArchiveExtension">
<Property Name="HostServerConfigFileName" value="K2HostServer.config"/>
<Property Name="ConfigDBConnectionName" value="HostserverDB"/>
</Extension>
</Extensions>
在这里我们可以清楚的看到第一段XML中的ConsoleExtension,FileExtension,EventLogExtension等节点的Name是从哪里来的了。在这里我们来添加自己的扩展配置,例如发送Email。首先我们编写自定义扩展的代码,继承BaseExtension,只需重写一个方法:
using System;
using SourceCode.Logging;
using SourceCode.Logging.Extension;
using System.Net.Mail;
namespace LoggerExtension
{
{
{
{
{
{
throw;
}
return;
}
}
}
看得出来,非常简单 :)
然后在上面所示的Extensions节点中加入自定义扩展的一个节点
<Extension Name="EmailExtension" type="LoggerExtension.Email" location="C:\LoggerExtension.dll"></Extension>
type是我们扩展代码dll的namespace.class,location是这个dll的所在位置。
对应着LogLocationSettings节点中也加入一个节点,注意两个Name要匹配.
<LogLocation Name="EmailExtension" Active="True" LogLevel="All" />
最后保存config文件,一个日志记录的扩展设置就OK了。
相关文章推荐
- 从头认识Spring-3.4 简单的AOP日志实现-扩展添加检查订单功能,以便记录并检測输入的參数
- ssh日志记录设置putty
- MySQL设置记录操作日志
- php错误日志记录设置
- SecureCRT自动记录日志设置
- Nginx 记录请求分发日志设置
- laravel5日志设置篇(1) - 记录开始和结束日志
- Log4j的扩展-支持设置最大日志数量MaxFileSize的DailyRollingFileAppender
- apache访问日志开启百度蜘蛛访问记录格式并设置按天记录
- PHP中设置时区,记录日志文件的实现代码
- Apache日志不记录图片文件设置方法和来源日志的配置
- PHP中设置时区,记录日志文件的实现代码
- 从头认识Spring-3.4 简单的AOP日志实现-扩展增加检查订单功能,以便记录并检测输入的参数
- Postgres设置pg_log日志记录内容
- logback分别将日志记录到数据库和日志文件文件中,且可以独立设置级别
- PostgreSQL告警日志中不记录select的设置方法
- PHP扩展之错误处理和日志记录
- nginx设置日志不记录404或者200或者其他日志信息
- PHP设置时区,记录日志文件的方法
- 从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展添加检查订单功能,以便记录并检測输入的參数