Unity使用插件log4net

633 阅读1分钟

集成Unity日志输出可以分为两个部分 一、下载log4net和Unity的配置 下载log4net dll至Assets目录下的References文件夹中,如下图:

image.png

Unity中File->Build Settings->PlayerSettings->Player中的设置,Api Compatibility Level 设置为.NET 4.x如下图:

image.png 二、集成log4net的代码及log4net配置文件 log4net配置文件名为:log4net.config。文件内容如下:

log4net配置文件位置与Assets同级(也可以放在其他位置,配置文件加载的时候换个路径就行)如下图:

image.png Unity日志集成类UnityLogger代码如下: using log4net; using UnityEngine; public static class UnityLogger {

public static void Init() {
    Application.logMessageReceived += onLogMessageReceived;//添加unity日志监听
    Debug.Log("日志初始化");
}

private static ILog log = LogManager.GetLogger("FileLogger");//FileLogger

private static void onLogMessageReceived(string condition,string stackTrace,LogType type) {
    switch (type) {
        case LogType.Error:
            log.ErrorFormat("{0}\r\n{1}", condition, stackTrace.Replace("\n", "\r\n"));
            break;
        case LogType.Assert:
            log.DebugFormat("{0}\r\n{1}", condition, stackTrace.Replace("\n", "\r\n"));
            break;
        case LogType.Exception:
            log.FatalFormat("{0}\r\n{1}", condition, stackTrace.Replace("\n", "\r\n"));
            break;
        case LogType.Warning:
            log.WarnFormat("{0}\r\n{1}", condition, stackTrace.Replace("\n", "\r\n"));
            break;
        default:
            log.Info(condition);
            break;
    }
}

}

初始化UnityLogger,初始化代码放在整个游戏的一个MonoBehaviour的Start中,代码如下:

{
    //ApplicationLogPath和LogFileName在log4net.config中使用
    FileInfo file = new System.IO.FileInfo("log4net.config");//获取log4net配置文件
    GlobalContext.Properties["ApplicationLogPath"] = Path.Combine(file.Directory.FullName,"Log");//日志生成的路径
    GlobalContext.Properties["LogFileName"] = "log";//生成日志的文件名
    log4net.Config.XmlConfigurator.ConfigureAndWatch(file);//加载log4net配置文件
    UnityLogger.Init();
}

原文链接:blog.csdn.net/qq_30937147…