日志功能

Glacier 内置了一款基础的日志框架,支持多种方式配置日志。(.config、ini 配置文件、环境变量)同时提供统一日志接口,支持第三方日志框架的实现。

目前支持对接的日志框架:

  • CommonLogging
  • NLog

未来将会支持对接更多的日志框架,例如 log4net 等。

安装 Glacier

Glacier 通过NuGet下载。

通常情况在 VS 中使用 GUI 或者在包管理器中使用如下命令:

PM> Install-Package GKarch.Glacier

日志级别

每条日志信息都包含一个级别,用于描述该日志的重要性。

Glacier 支持如下几种日志级别:

  • Trace:跟踪级
  • Debug:调试级
  • Info:信息级
  • Warn:警告级
  • Error:错误级
  • Fatal:致命级

创建日志

using GKarch.Glacier;

public class MyClass
{
    public void MyMethod()
    {
        var log = GlacierCore.Log;
        log.Trace("Sample trace message");
        log.Debug("Sample debug message");
        log.Info("Sample informational message");
        log.Warn("Sample warning message");
        log.Error("Sample error message");
        log.Fatal("Sample fatal error message");
    }
}

配置说明

以下说明将简单介绍如何在应用中,使用不同配置方式配置日志框架。

.config 配置

在app.config或web.config加入如下配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="glacier:abbr" value="g"/>
    <add key="g:log:provider" value="console"/>
    <add key="g:log:level" value="debug" />
  </appSettings>
</configuration>
  • g:log:provider:支持 nop、trace、console、debug 4种方式,默认为 trace。
  • g:log:level: 支持trace、debug、info、error、fatal 5中等级,默认为 info。

ini 文件配置

启用 ini 配置,在 app.config 或 web.config 加入如下配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="glacier:abbr" value="g"/>
    <add key="g:config:provider" value="ini"/>
    <!-- <add key="g:config:ini:file" value="config.ini"/> -->
  </appSettings>
</configuration>
  • g:config:provider:使用 ini 配置
  • g:config:ini:file:ini 文件名,默认为 config.ini

config.ini 配置格式如下

[log]
provider = console
level = debug

环境变量配置

启用环境变量配置,在 app.config 或 web.config 加入如下配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="glacier:abbr" value="g"/>
    <add key="g:config:provider" value="env"/>
    <add key="g:env:prefix" value="prefix"/>
  </appSettings>
</configuration>

环境变量设置:

cmd
set "prefix:g:config:provider"="console"
set "prefix:g:log:level"="debug"

对接第三方日志框架

Common.Logging

安装 GKarch.Glaciation.Common.Logging,在vs中使用

PM> Install-Package GKarch.Glaciation.Common.Logging

设置 Common.Logging 为日志框架的实现

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="glacier:abbr" value="g"/>
    <add key="g:core:autoComposition" value="true" />
    <add key="g:log:provider" value="CommonLogging"/>
    <add key="g:log:level" value="debug" />
  </appSettings>
</configuration>

NLog

安装 GKarch.Glaciation.NLog31,在 vs 中使用

PM> Install-Package GKarch.Glaciation.NLog31

设置 NLog 为日志框架的实现

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="glacier:abbr" value="g"/>
    <add key="g:core:autoComposition" value="true" />
    <add key="g:log:provider" value="nlog"/>
    <add key="g:log:nlog:configType" value="file"/>
  </appSettings>
</configuration>