private void OnCommStreamCreated(object sender, CommLogCreatedEventArgs args) { try { // 检查缓存池中元素的个数,超过阈值则记录。 if (_logCache.Count > 500) { LogUtility.Warning(string.Format("通信流日志缓存池的个数已达到 {0} 条!", _logCache.Count)); } _logCache.AddProduct(args); } catch (Exception ex) { LogUtility.Error(ex); } }
/// <summary> /// 在全局消息总线上发布通信日志产生事件。 /// </summary> protected void PublishCommLogCreateEvent(NodeType localType, uint localCode, NodeType remoteType, uint remoteCode, bool isIncoming, byte[] data) { try { if (!this.PublishCommLogCreated) { return; } var args = new CommLogCreatedEventArgs(localType, localCode, remoteType, remoteCode, isIncoming, data); GlobalMessageBus.PublishCommLogCreated(args); } catch (Exception) { } }
private ICommStreamLogWriter CreateStreamLogWriter(CommLogCreatedEventArgs args) { var localNodeName = this.GetDeviceName(args.LocalNodeType, args.LocalNodeCode); var remoteNodeName = this.GetDeviceName(args.RemoteNodeType, args.RemoteNodeCode); var logPath = string.Format(@"{0}\L{1}.{2}_R{3}.{4}", LogSettings.CommLogBasePath, args.LocalNodeCode, localNodeName, args.RemoteNodeCode, remoteNodeName); var logKey = string.Format("{0}{1}-{2}{3}", args.LocalNodeType, args.LocalNodeCode, args.RemoteNodeType, args.RemoteNodeCode); // var ipc = CommLogHelper.GetParserCode(args.LocalNodeType, args.RemoteNodeType, true); var opc = CommLogHelper.GetParserCode(args.LocalNodeType, args.RemoteNodeType, false); // var logSettings = LogFileSettings.CreateV11(logKey, logPath, ipc, opc); logSettings.FileNamePrefix = GetFileNamePrefix(args.LocalNodeCode, localNodeName, args.RemoteNodeCode, remoteNodeName); logSettings.FileNameSuffix = ""; logSettings.ExpiredDays = this.LogExpiredDays; logSettings.FileDescription = GetFileDescription(localNodeName, remoteNodeName); // return(CommStreamLogManager.CreateLogWriter(logSettings)); }
/// <summary> /// 发布通信流日志产生事件。 /// </summary> public static IMessageResponse PublishCommLogCreated(CommLogCreatedEventArgs args, object sender = null) { return(LocalMessageBus.Current.Publish(CommLogCreatedTopic, args, sender, false)); }