在上一章我們學(xué)習(xí)有關(guān)photon server的配置,這章我們開始學(xué)習(xí)log日志文件配置與輸出
一、log日志的打開
在photon中點(diǎn)擊open logs選項(xiàng),打開baretail軟件,相當(dāng)于一個(gè)記事本,用于log日志的輸出。
打開以后的界面
二、log日志的輸出
1.引用log4net.dll 和exitgames.logging.log4net.dll,位于lib文件夾下。
2.添加配置文件,由于有固定的格式,因此我們?cè)趕rc-servermmophoton.mmodemo.server文件夾下復(fù)制一份log4net.config文件放在我們項(xiàng)目的根目錄下,修改屬性為始終復(fù)制。
配置文件路徑 photon:applicationlogpath,修改為自己的程序名mygame。
<file type="log4net.util.patternstring" value="%property{photon:applicationlogpath}\\\\mygame.server.log" />
3.在主類mygameserver中添加一個(gè)靜態(tài)只讀字段log并初始化
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using photon.socketserver; using exitgames.logging; using exitgames.logging.log4net; using system.io; using log4net.config; namespace mygamephotonserver { //所有的server端 主類都要集成自applicationbase public class mygameserver:applicationbase { public static readonly ilogger log = logmanager.getcurrentclasslogger(); /// <summary> /// 剛一個(gè)客戶端請(qǐng)求連接的 /// </summary> /// <param name="initrequest"></param> /// <returns></returns> protected override peerbase createpeer(initrequest initrequest) { log.info("一個(gè)客戶端連接過(guò)來(lái)了。。。。"); return new myclientpeer(initrequest); } /// <summary> /// 初始化 /// </summary> protected override void setup() { // 日志的初始化 log4net.globalcontext.properties["photon:applicationlogpath"] = path.combine( path.combine(this.applicationrootpath, "bin_win64"), "log"); fileinfo configfileinfo = new fileinfo( path.combine( this.binarypath ,"log4net.config")); if (configfileinfo.exists) { logmanager.setloggerfactory(log4netloggerfactory.instance);//讓photon知道使用的是log4netlog插件 xmlconfigurator.configureandwatch(configfileinfo);//讓log4net這個(gè)插件讀取配置文件 } log.info("初始化完成!"); } /// <summary> /// server端關(guān)閉的時(shí)候 /// </summary> protected override void teardown() { log.info("服務(wù)器應(yīng)用關(guān)閉了"); } } }
運(yùn)行后的日志輸出結(jié)果