下载最新log4net.dll到unity的Plugins文件夹 unity中设置.net为最新的
编写输出到UI上的类
- public class UiLogEventArgs : EventArgs //自定义的类
- {
- public string Message { get; private set; }
- public UiLogEventArgs() { }
- public UiLogEventArgs(string message)
- {
- Message = message;
- }
- }
- public class UiLogAppender : AppenderSkeleton //事件和方法
- {
- public event EventHandler<UiLogEventArgs> UiLogReceived;
- protected override void Append(LoggingEvent loggingEvent)
- {
- var message = RenderLoggingEvent(loggingEvent);
- OnUiLogReceived(new UiLogEventArgs(message));
- }
- protected virtual void OnUiLogReceived(UiLogEventArgs e)
- {
- if (UiLogReceived!=null)
- {
- UiLogReceived(this,e);
- }
- }
- }
- /// <summary>
- /// 日志打印功能
- /// </summary>
- public class LogTest : MonoBehaviour
- {
- public GameObject textPre;
- public Transform parent;
- public Text text;
- private static ILog logUI = LogManager.GetLogger("UIFileLogger");
- private void Start()
- {
- //输出到UI
- var hierarchy = LogManager.GetRepository() as Hierarchy;
- var appenders = hierarchy.Root.Repository.GetAppenders();
- foreach (var appender in appenders)
- {
- var uiLogAppender = appender as UiLogAppender;
- if (uiLogAppender != null)
- {
- uiLogAppender.UiLogReceived += ShowMessageOnUI;
- }
- }
- }
- private void ShowMessageOnUI(object sender, UiLogEventArgs e)
- {
- GameObject go = GameObject.Instantiate(textPre);
- go.GetComponent<Text>().text = e.Message;
- go.transform.SetParent(parent);
- text.text = e.Message;
- text.text += "\n";
- // Debug.Log("显示到ui");
- }
- }
配置文件路径为StreamingAssets文件夹
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<appSettings>
</appSettings>
<log4net>
<appender name="UiLogAppender" type="UiLogAppender">
<!--UI显示日志-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="记录时间:%date 线程:[%thread] 日志级别:%-5level 记录类:%logger 日志消息:%message%newline" />
</layout>
</appender>
<logger name="UIFileLogger" additivity="false">
<level value="DEBUG" />
<appender-ref ref="UiLogAppender" />
</logger>
</log4net>
</configuration>