public void Start()
        {
            // ObservableLogger.Listener.LogToUnityDebug()を呼び出すことで、
            // 発行されたログをUnityEditorのコンソールに出力してくれるようになる
            // なお複数回呼び出すとログが重複して出力されてしまう
            // 多重実行に注意
            UniRx.Diagnostics.ObservableLogger.Listener.LogToUnityDebug();

            // ObservableLogger.ListenerはIObservable<LogEntry>
            // これを購読することで発行されたログを購読できる
            UniRx.Diagnostics.ObservableLogger.Listener
            // ログレベルでフィルタリング
            .Where(x => x.LogType == LogType.Error || x.LogType == LogType.Exception)
            // 1フレームの間に発行されたログを集約する
            .BatchFrame()
            //発行されたログをファイルに書き出す
            .Subscribe(WriteAsync)
            .AddTo(this);

            // loggerを用いて任意のLogメッセージを発行可能
            // 発行したLogメッセージは ObservableLogger.Listener より購読可能
            _logger.Debug("Debugメッセージ");
            _logger.Error("エラーが発生しました");
            _logger.Exception(new Exception("例外が発生しました"));
        }
        private void OnEnable()
        {
            Logging.Info("listen " + m_port);
            var m_http = new HttpDispatcher(SetupHttpMount());

            m_console = new WSConsole();
            m_console.Listen(m_port, m_http);

            var utf8 = new System.Text.UTF8Encoding(false);

            m_disposable = Logging.Observable.Subscribe(x =>
            {
                try
                {
                    // LogEntry to Json
                    var json = UnityEngine.JsonUtility.ToJson(x);
                    m_console.SendFrame(WebSocketFrameOpCode.Text, new ArraySegment <byte>(utf8.GetBytes(json)));
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                }
            });
        }