码迷,mamicode.com
首页 > Web开发 > 详细

使用log4Net输出调试信息

时间:2018-02-13 10:31:12      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:generic   pen   ring   分享图片   base   glob   属性   alc   右键   

在上一篇搭建服务器端的项目基础上,使用log4Net进行调试信息输出

http://www.cnblogs.com/fzxiaoyi/p/8439769.html

1.先分析下Photo 自带的服务器端源代码

 打开文件夹src-server  C:\Program Files\Photon Server\src-server

技术分享图片

这几个文件夹都是服务器端一些源代码,打开任意一个工程查看下别的项目是如何输出调试

这里以Lite项目为例,打开Lite项目

技术分享图片

字体加粗的这个MyApplication是启动项目,也可以通过右键解决方案->属性查看启动项目

双击打开MyApplication.CS

技术分享图片

F12进入基类LiteApplication

技术分享图片

 这个类跟我们写的服务器端类一模一样,也是继承之ApplicationBase, 重写了三个抽象方法

很明显红框部份就是我们需要填加的代码..最后使用log.infoFormat输出调试信息.

 项目还添加了个lgo4net.config 配置文件

技术分享图片

 

2.开始实现使用log4Net输出调试信息的功能

 

 1 using ExitGames.Logging;
 2 using ExitGames.Logging.Log4Net;
 3 using log4net.Config;
 4 using Photon.SocketServer;
 5 using System;
 6 using System.Collections.Generic;
 7 using System.IO;
 8 using System.Linq;
 9 using System.Text;
10 using System.Threading.Tasks;
11 
12 namespace ChatServer
13 {
14     //继承自ApplicationBase的类是server的入口程序
15     class ChatServer : ApplicationBase
16     {
17         private static readonly ILogger log = LogManager.GetCurrentClassLogger();
18         //当有新的客户连接到这个server时被自动调用
19         protected override PeerBase CreatePeer(InitRequest initRequest)
20         {
21             //每次被调用就创建一个继承自PeerBase类的对象用于跟客户端通信
22             return new ChatPeer(initRequest.Protocol, initRequest.PhotonPeer);
23         }
24         //当server启动时被调用
25         protected override void Setup()
26         {
27             log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(this.ApplicationRootPath, "log");
28 
29             // log4net
30             string path = Path.Combine(this.BinaryPath, "log4net.config");
31             var file = new FileInfo(path);
32             if (file.Exists)
33             {
34                 LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
35                 XmlConfigurator.ConfigureAndWatch(file);
36             }
37 
38             log.Info("Server Setup");
39 
40         }
41         //当server停止时被调用
42         protected override void TearDown()
43         {
44             log.Info("Server TearDown");
45         }
46     }
47 }

 再把Lite项目中的lgo4net.config 复制一份到我们工程目录下,添加lgo4net.config到项目中.

打开lgo4net.config做下修改,默认输出的是Lite.log, 搜索Lite全部替换成我们的项目名称

ChatServer, 注意要去掉全字匹配,保存.

技术分享图片

 lgo4net.config右键属性,复制到输出目录 改为 始终复制.

技术分享图片

保存下项目,最终生成解决方案, 运行PhotonControl.exe

选择ChatServer->Start as application 启动应用

技术分享图片

 打开日志进行查看  Open Logs

技术分享图片

ChatServer.log 就是我们生成的普通日志,服务器启动时输出了一句Server Setup

 默认所有服务器端日志都保存在C:\Program Files\Photon Server\deploy\log\

使用log4Net输出调试信息

标签:generic   pen   ring   分享图片   base   glob   属性   alc   右键   

原文地址:https://www.cnblogs.com/fzxiaoyi/p/8445930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!