在上一篇搭建服务器端的项目基础上,使用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输出调试信息的功能

 using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using log4net.Config;
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ChatServer
{
//继承自ApplicationBase的类是server的入口程序
class ChatServer : ApplicationBase
{
private static readonly ILogger log = LogManager.GetCurrentClassLogger();
//当有新的客户连接到这个server时被自动调用
protected override PeerBase CreatePeer(InitRequest initRequest)
{
//每次被调用就创建一个继承自PeerBase类的对象用于跟客户端通信
return new ChatPeer(initRequest.Protocol, initRequest.PhotonPeer);
}
//当server启动时被调用
protected override void Setup()
{
log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(this.ApplicationRootPath, "log"); // log4net
string path = Path.Combine(this.BinaryPath, "log4net.config");
var file = new FileInfo(path);
if (file.Exists)
{
LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
XmlConfigurator.ConfigureAndWatch(file);
} log.Info("Server Setup"); }
//当server停止时被调用
protected override void TearDown()
{
log.Info("Server TearDown");
}
}
}

再把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输出调试信息的更多相关文章

  1. js操作dom---创建一个域来输出调试信息

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  2. 在MFC中,使用控制台Console输出调试信息

    1.在MFC的应用类的InitInstance()函数里添加: AllocConsole(); 有时候需要调整这行代码在InitInstance函数的位置 2.继续添加以下代码 freopen(&qu ...

  3. 使用OutputDebugString输出调试信息

    在编写控制台程序的时候我们经常会使用printf输出调试信息,使我们了解程序的状态,方便调试,但是当编写非控制台程序的时候这种方法就行不通了,那我们应该怎么办?上网查了一些方法,大致就如下几种 使用L ...

  4. shell输出调试信息

    [shell输出调试信息] 1.使用trap命令 trap命令用于捕获指定的信号并执行预定义的命令. 其基本的语法是: trap 'command' signal 其中signal是要捕获的信号,co ...

  5. Delphi中使用Dos窗口输出调试信息

    在项目文件 *.DPR (Project->View Source)  里加上{$APPTYPE   CONSOLE} 然后,在需要输出处加上 Writeln(‘your debug messa ...

  6. 【OT1.0 + TP3.2】开启trace调试、输出调试信息、开启自定义菜单

    1.开启trace调试 A- 后台系统设置 show-page-trace = 1 B-config.php文件.配置 show-page-trace = true 2.输出调试信息 很奇怪,OT竟然 ...

  7. Delphi RAD Berlin OutputDebugString 输出调试信息

    Delphi RAD Berlin Event Log.OutputDebugString 输出调试信息,仅在win VCL下可以用.OutputDebugString(PChar('hellowor ...

  8. 跟踪Makefile输出调试信息

    /********************************************************************* * 跟踪Makefile输出调试信息 * 说明: * 有时 ...

  9. Qt 使用#define+qDebug()输出调试信息

    /******************************************************************************************* * Qt 使用 ...

随机推荐

  1. [LeetCode] 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加

    Given a string S of '(' and ')' parentheses, we add the minimum number of parentheses ( '(' or ')', ...

  2. portal项目启动问题

    错误信息: Disconnected from the target VM, address: '127.0.0.1:58909', transport: 'socket' Process finis ...

  3. 手把手教你 通过 NuGet.Server 包 搭建nuget服务器,并使用桌面工具上传 nuget 包,免命令行

    新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都 ...

  4. PDMan-2.1.0 正式发布:用心开源,免费的国产数据库建模工具 PowerDesigner

    PDMan是一款开源免费的数据库模型建模工具,支持Windows,Mac,Linux等操作系统,是PowerDesigner之外,更好的免费的替代方案.他具有颜值高,使用简单的特点.包含数据库建模,灵 ...

  5. SpringBoot第八篇:整合MyBatis-Generator

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10894278.html 版权声明:本文为博主原创文章,转载请附上博文链接! 注意:本章有大量代码 ...

  6. centos下java环境搭建安装

    1. 购买服务器(阿里云) 2. 重置密码,重启服务器 3. 创建账号work groupadd work #创建组 mkdir /data # 创建数据文件夹 useradd -d /data/wo ...

  7. WindowsServer -------------部署软件

    1.windowsServer 中创建 lls 在服务器中创建lls       参考 将文件扩展名调出 2.安装数据库 将数据库传递到服务器中 安装sqlserver 数据库 3.在系统中创建文件存 ...

  8. vue-v-xxx基于 Vue拓展的 v-xxx 库

    君问归期未有期,巴山夜雨涨秋池. 何当共剪西窗烛,却话巴山夜雨时. 作为vue轻车熟路的老司机,经常会用到一些指令,vue官方提供的指令又太少,无法满足旺盛的欲望,而每次要写一遍,终日郁郁寡欢,从小就 ...

  9. 解决mac/win双系统,mac原生读写NTFS分区重启后失效的问题

    安装mac/win双系统,然后在mac下启用原生的NTFS分区读写功能,并将分区创建桌面快捷方式后,会发现有时候进入win后再进mac,原来创建的分区桌面快捷方式是白色的图标,并且分区也无法打开,这个 ...

  10. jquery动画控制非css属性

    JQuery的animate()方法可以通过渐变的更改CSS属性来实现简单的动画效果, 比如 $("#box").animate({height:"300px" ...