SuperSocket 中的日志功能

    当 SuperSocket boostrap 启动时,日志系统将会自动启动。 所以你无须创建自己的日志工具,最好直接使用SuperSocket内置的日志功能。

    SuperSocket 默认使用log4net作为第三方日志框架。 所以如果你熟悉log4net,你就能非常容易的使用和自定义SuperSocket的日志功能。

    SuperSocket 还提供了基本的 log4net 配置文件 log4net.config/log4net.unix.config, 你需要把它放到程序运行目录的子目录"Config"。 这个 log4net 配置定义了多个 loggers 和 appenders 将所有日志分类输出到 "Logs"目录下的四个文件:

    • info.log
    • debug.log
    • err.log
    • perf.log

    你也可以根据你自己的需要定制这个配置文件。

    SuperSocket的日志功能非常简单,你几乎可以在任何地方都能记录日志。 AppServer 和 AppSession 都有Logger属性, 你可以直接用它来记录日志。

    以下代码演示了日志接口的使用:

    A -

    B -

    1. {
    2. {
    3. Logger.Error("Unknow request");
    4. }
    5. }

    然后在代码中创建这个logger实例:

    1. var myLogger = server.LogFactory.GetLog("MyBusiness");

    SuperSocket 支持你通过接口实现自己的log factory:

    接口 ILogFactory 和 ILog 定义在 SuperSocket 之中。

    在你实现你你自己的 log factory之后,你需要在配置文件中启用它:

    1. <servers>
    2. <server name="EchoServer" serverTypeName="EchoService">
    3. <listeners>
    4. <add ip="Any" port="80" />
    5. </server>
    6. </servers>
    7. <add name="EchoService"
    8. type="SuperSocket.QuickStart.EchoService.EchoServer, SuperSocket.QuickStart.EchoService" />
    9. </serverTypes>
    10. <logFactories>
    11. <add name="ConsoleLogFactory"
    12. type="SuperSocket.SocketBase.Logging.ConsoleLogFactory, SuperSocket.SocketBase" />
    13. </logFactories>