222
schangxiang@126.com
2025-09-02 ac4209926b9d911988be67a8957d5a7a53ec2ce8
222
已添加7个文件
已修改4个文件
32327 ■■■■■ 文件已修改
wcs/yunneiWCS/CommonDll/log4net.dll 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/CommonDll/log4net.xml 31814 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/Form1.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/SystemInteraction/mes2/PushMesHandler.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/ThreadTask/mesDataTranfficForRealMes.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/Utils/Log4Net/C_LogWriter.cs 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/Utils/Log4Net/Log4netHelper.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/Utils/Log4Net/LogType.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/log4net_iWare -编辑版.config 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/log4net_iWare.config 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/yunneiWCS/yunneiWCS.csproj 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wcs/yunneiWCS/CommonDll/log4net.dll
Binary files differ
wcs/yunneiWCS/CommonDll/log4net.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
wcs/yunneiWCS/yunneiWCS/Form1.cs
@@ -28,6 +28,7 @@
using yunneiWCS.SystemInteraction.tianyong;
using yunneiWCS.PLC.Srm;
using yunneiWCS.SystemInteraction.mes2.dto;
using yunneiWCS.ThreadTask;
namespace yunneiWCS
{
@@ -139,7 +140,7 @@
            Thread mesSendData = new Thread(mesDataTranffic);
            StartThread(mesSendData);
            new Thread(mesDataTranfficForRealMes).Start();
            new Thread(mesDataTranfficForRealMes.Handler).Start();
            new Thread(RefershData).Start();
@@ -2337,103 +2338,7 @@
        }
        /// <summary>
        /// MES数据推送 [Editby shaocx,2025-09-02]
        /// </summary>
        public void mesDataTranfficForRealMes()
        {
            while (true)
            {
                try
                {
                    Thread.Sleep(5000);
                    using (dbmodel mod = new dbmodel())
                    {
                        List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.isSendToMes == 0).ToList();
                        if (sendMesData.Count > 0)
                        {
                            foreach (var itemTask in sendMesData)
                            {
                                try
                                {
                                    ApiResponse<object> ret = null;
                                    //获取信息明细
                                    var details = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == itemTask.ID).ToList();
                                    List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>();
                                    foreach (var de in details)
                                    {
                                        pushData.Add(new InboundStockInfoToMes()
                                        {
                                            containerCode = itemTask.containerCode,
                                            createTime = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
                                            materialCode = de.productCode,
                                            materialName = de.productName,
                                            positionName = itemTask.sourcePlace,
                                            productName = itemTask.materialName,
                                            serialNumber = de.serialNumber,
                                            supplier = itemTask.supplier,
                                            version = itemTask.version,
                                        });
                                    }
                                    if (isvirtual)
                                    {//模拟环境
                                        ret = new ApiResponse<object>();
                                        ret.Success = true;
                                        ret.Message = "系统模拟完成";
                                    }
                                    else
                                    {
                                        switch (itemTask.outInFlag)
                                        {
                                            case (int)OutInFlag.入库:
                                                ret = PushMesHandler.Mes_InStockSend(pushData, itemTask.ID.ToString());
                                                break;
                                            case (int)OutInFlag.出库:
                                                ret = PushMesHandler.Mes_OutStockSend(pushData, itemTask.ID.ToString());
                                                break;
                                            default:
                                                break;
                                        }
                                    }
                                    if (ret.Success)
                                    {
                                        itemTask.isSendToMes = 1;
                                    }
                                    else
                                    {
                                        itemTask.isSendToMes = 0;
                                    }
                                    itemTask.SendToMesTime = DateTime.Now;
                                    itemTask.MesRet = ret.Message;
                                    itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1;
                                    mod.SaveChanges();
                                }
                                catch (Exception ex)
                                {
                                    SystemWarningMsg.msg_mesDataTranfficForRealMes = "推送给MES数据异常:" + JsonConvert.SerializeObject(ex);
                                    WZ.Useful.Commons.LogTextHelper.WriteLine("Form1", "mesDataTranffic", SystemWarningMsg.msg_mesDataTranffic);
                                }
                            }
                        }
                        else
                        {
                            SystemWarningMsg.msg_mesDataTranfficForRealMes = "没有数据要推送给MES!";
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemWarningMsg.msg_mesDataTranfficForRealMes = "数据要推送给MES出现异常:" + ex.Message;
                    WZ.Useful.Commons.LogTextHelper.WriteLine("Form1", "mesDataTranffic数据要推送给MES出现异常:", SystemWarningMsg.msg_mesDataTranfficForRealMes + "," + JsonConvert.SerializeObject(ex));
                }
            }
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Environment.Exit(0);//退出本进程所有线程
@@ -2880,6 +2785,7 @@
                {
                    LogTextHelper.BatchDeleteLog();
                    LogTextHelper.BatchDeleteLog(@"H:\\api\\YUN\\Log");
                    LogTextHelper.BatchDeleteLog(@"H:\\api\\YUN\\Log");//移除log4日志
                    ClearDataHandler.Delete_System_TianYongLog(7);
                    ClearDataHandler.Delete_StockClearLog(30);
                    ClearDataHandler.Delete_taskRecord(30);
wcs/yunneiWCS/yunneiWCS/SystemInteraction/mes2/PushMesHandler.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using iWareCommon.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -6,6 +7,7 @@
using System.Text;
using System.Threading.Tasks;
using yunneiWCS.EnumDefine;
using yunneiWCS.ExtendFunction;
using yunneiWCS.SystemInteraction.mes2.dto;
namespace yunneiWCS.mes
@@ -23,9 +25,10 @@
        /// </summary>
        /// <param name="pushData"></param>
        /// <returns></returns>
        public static ApiResponse<object> Mes_InStockSend(List<InboundStockInfoToMes> pushData, string _identifier)
        public static ApiResponse<object> Mes_InStockSend(List<InboundStockInfoToMes> pushData, string _identifier, LogType _logType)
        {
            ApiResponse<object> res = null;
            var funName = "Mes_InStockSend";
            try
            {
                MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
@@ -33,13 +36,14 @@
                mesRequest.identifier = _identifier;
                string paprm = JsonConvert.SerializeObject(mesRequest);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
                Guid guid = System.Guid.NewGuid();
                res = JsonConvert.DeserializeObject<ApiResponse<object>>(mes_api.postContentForString("T_WMS_Inbound_Record", paprm, guid));
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_InStockSend è¿”回状态码:", res.Code + " è¿”回信息:" + res.Message);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{res}");
            }
            catch (Exception ex)
            {
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_InStockSend ", " å‘送异常:" + JsonConvert.SerializeObject(ex));
                Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
                res.Message = "发送异常:" + ex.Message;
            }
            return res;
@@ -52,9 +56,10 @@
        /// </summary>
        /// <param name="pushData"></param>
        /// <returns></returns>
        public static ApiResponse<object> Mes_OutStockSend(List<InboundStockInfoToMes> pushData, string _identifier)
        public static ApiResponse<object> Mes_OutStockSend(List<InboundStockInfoToMes> pushData, string _identifier, LogType _logType)
        {
            ApiResponse<object> res = null;
            var funName = "Mes_OutStockSend";
            try
            {
                MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
@@ -62,13 +67,14 @@
                mesRequest.identifier = _identifier;
                string paprm = JsonConvert.SerializeObject(mesRequest);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},准备参数:{paprm}");
                Guid guid = System.Guid.NewGuid();
                res = JsonConvert.DeserializeObject<ApiResponse<object>>(mes_api.postContentForString("T_WMS_Outbound_Record", paprm, guid));
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_OutStockSend è¿”回状态码:", res.Code + " è¿”回信息:" + res.Message);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{res}");
            }
            catch (Exception ex)
            {
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_OutStockSend ", " å‘送异常:" + JsonConvert.SerializeObject(ex));
                Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
                res.Message = "发送异常:" + ex.Message;
            }
            return res;
@@ -81,9 +87,10 @@
        /// </summary>
        /// <param name="pushData"></param>
        /// <returns></returns>
        public static ApiResponse<object> Mes_StockSend(List<InboundStockInfoToMes> pushData)
        public static ApiResponse<object> Mes_StockSend(List<InboundStockInfoToMes> pushData, LogType _logType)
        {
            ApiResponse<object> res = null;
            var funName = "Mes_StockSend";
            try
            {
                MesRequest<List<InboundStockInfoToMes>> mesRequest = new MesRequest<List<InboundStockInfoToMes>>();
@@ -92,11 +99,11 @@
                string paprm = JsonConvert.SerializeObject(mesRequest);
                Guid guid = System.Guid.NewGuid();
                res = JsonConvert.DeserializeObject<ApiResponse<object>>(mes_api.postContentForString("T_WMS_Realtime_Data", paprm, guid));
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_OutStockSend è¿”回状态码:", res.Code + " è¿”回信息:" + res.Message);
                Log4NetHelper.WriteInfoLog(_logType, $"{funName},参数:{paprm},返回:{res}");
            }
            catch (Exception ex)
            {
                WZ.Useful.Commons.LogTextHelper.WriteLine("PushMesHandler", "Mes_OutStockSend ", " å‘送异常:" + JsonConvert.SerializeObject(ex));
                Log4NetHelper.WriteErrorLog(_logType, $"{funName},异常:" + ex.Message, ex);
                res.Message = "发送异常:" + ex.Message;
            }
            return res;
wcs/yunneiWCS/yunneiWCS/ThreadTask/mesDataTranfficForRealMes.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
using iWareCommon.Utils;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using yunneiWCS.EnumDefine;
using yunneiWCS.ExtendFunction;
using yunneiWCS.mes;
using yunneiWCS.ORM;
using yunneiWCS.SystemInteraction.mes2.dto;
namespace yunneiWCS.ThreadTask
{
    /// <summary>
    /// MES数据传输(真正的MES)
    /// </summary>
    public class mesDataTranfficForRealMes
    {
        public static LogType _logType = LogType.mesDataTranfficForRealMes;
        public static async void Handler()
        {
            while (true)
            {
                try
                {
                    Thread.Sleep(5000);
                    using (dbmodel mod = new dbmodel())
                    {
                        List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.isSendToMes == 0).ToList();
                        if (sendMesData.Count > 0)
                        {
                            foreach (var itemTask in sendMesData)
                            {
                                try
                                {
                                    ApiResponse<object> ret = null;
                                    //获取信息明细
                                    var details = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == itemTask.ID).ToList();
                                    List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>();
                                    foreach (var de in details)
                                    {
                                        pushData.Add(new InboundStockInfoToMes()
                                        {
                                            containerCode = itemTask.containerCode,
                                            createTime = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"),
                                            materialCode = de.productCode,
                                            materialName = de.productName,
                                            positionName = itemTask.sourcePlace,
                                            productName = itemTask.materialName,
                                            serialNumber = de.serialNumber,
                                            supplier = itemTask.supplier,
                                            version = itemTask.version,
                                        });
                                    }
                                    if (Form1.isvirtual)
                                    {//模拟环境
                                        ret = new ApiResponse<object>();
                                        ret.Success = true;
                                        ret.Message = "系统模拟完成";
                                    }
                                    else
                                    {
                                        switch (itemTask.outInFlag)
                                        {
                                            case (int)OutInFlag.入库:
                                                ret = PushMesHandler.Mes_InStockSend(pushData, itemTask.ID.ToString(), _logType);
                                                break;
                                            case (int)OutInFlag.出库:
                                                ret = PushMesHandler.Mes_OutStockSend(pushData, itemTask.ID.ToString(), _logType);
                                                break;
                                            default:
                                                break;
                                        }
                                    }
                                    if (ret.Success)
                                    {
                                        itemTask.isSendToMes = 1;
                                    }
                                    else
                                    {
                                        itemTask.isSendToMes = 0;
                                    }
                                    itemTask.SendToMesTime = DateTime.Now;
                                    itemTask.MesRet = ret.Message;
                                    itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1;
                                    mod.SaveChanges();
                                }
                                catch (Exception ex)
                                {
                                    SystemWarningMsg.msg_mesDataTranfficForRealMes = "推送给MES数据异常:" + JsonConvert.SerializeObject(ex);
                                    Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
                                }
                            }
                        }
                        else
                        {
                            SystemWarningMsg.msg_mesDataTranfficForRealMes = "没有数据要推送给MES!";
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemWarningMsg.msg_mesDataTranfficForRealMes = "数据要推送给MES出现异常:" + ex.Message;
                    Log4NetHelper.WriteErrorLog(_logType, SystemWarningMsg.msg_mesDataTranfficForRealMes, ex);
                }
            }
        }
    }
}
wcs/yunneiWCS/yunneiWCS/Utils/Log4Net/C_LogWriter.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//配置config文件名
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net_iWare.config", Watch = true)]
namespace iWareCommon.Utils
{
    /// <summary>
    /// æ—¥å¿—等级
    /// </summary>
    enum LogLevel
    {
        Error,
        Debug,
        Warning,
        Info
    }
    /// <summary>
    /// æ—¥å¿—记录服务
    /// </summary>
    class C_LogWriter
    {
        /// <summary>
        /// æ—¥å¿—接口
        /// </summary>
        private log4net.ILog m_Log;
        /// <summary>
        /// åˆå§‹åŒ–log4net对象
        /// </summary>
        /// <param name="_LogType">日志类型</param>
        /// <param name="suffix">后缀</param>
        public void Init(LogType _LogType, string suffix)
        {
            string s = _LogType.ToString() + suffix;
            m_Log = log4net.LogManager.GetLogger(s);
        }
        /// <summary>
        /// è¾“出错误级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public void Error(string message, Exception ex)
        {
            //记录日志
            WriteLog(LogLevel.Error, message, ex);
        }
        /// <summary>
        /// è¾“出警告级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public void Warning(string message)
        {
            //记录日志
            WriteLog(LogLevel.Warning, message);
        }
        /// <summary>
        /// è¾“出信息级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public void Info(string message)
        {
            //记录日志
            WriteLog(LogLevel.Info, message);
        }
        /// <summary>
        /// è¾“出调试级别日志
        /// </summary>
        /// <param name="message">输出的消息</param>
        public void Debug(string message)
        {
            //记录日志
            WriteLog(LogLevel.Debug, message);
        }
        /// <summary>
        /// è®°å½•系统日志
        /// </summary>
        /// <param name="logLevel">日志级别</param>
        /// <param name="message">输出的消息</param>
        private void WriteLog(LogLevel logLevel, string message, Exception ex = null)
        {
            switch (logLevel)
            {
                case LogLevel.Debug:
                    m_Log.Debug(message);
                    break;
                case LogLevel.Error:
                    m_Log.Error(message, ex);
                    break;
                case LogLevel.Info:
                    m_Log.Info(message);
                    break;
                case LogLevel.Warning:
                    m_Log.Warn(message);
                    break;
            }
        }
    }
}
wcs/yunneiWCS/yunneiWCS/Utils/Log4Net/Log4netHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
using System;
namespace iWareCommon.Utils
{
    /// <summary>
    /// Log4Net日志帮助
    /// </summary>
    public class Log4NetHelper
    {
        /// <summary>
        /// è¾“出异常日志到Log4Net
        /// </summary>
        /// <param name="_LogType">日志类型</param>
        /// <param name="msg">消息内容</param>
        /// <param name="ex">异常对象</param>
        public static void WriteErrorLog(LogType _LogType, string msg, Exception ex = null)
        {
            C_LogWriter log = new C_LogWriter();
            log.Init(_LogType, "_Error");
            log.Error(msg, ex);
        }
        /// <summary>
        /// è¾“出info日志到Log4Net
        /// </summary>
        /// <param name="_LogType">日志类型</param>
        /// <param name="msg">消息内容</param>
        public static void WriteInfoLog(LogType _LogType, string msg)
        {
            C_LogWriter log = new C_LogWriter();
            log.Init(_LogType, "_Info");
            log.Info(msg);
        }
    }
}
wcs/yunneiWCS/yunneiWCS/Utils/Log4Net/LogType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareCommon.Utils
{
    /// <summary>
    /// æ—¥å¿—类型
    /// </summary>
    public enum LogType
    {
        /// <summary>
        /// MES数据传输(真正的MES)
        /// </summary>
        mesDataTranfficForRealMes = 1,
    }
}
wcs/yunneiWCS/yunneiWCS/log4net_iWare -±à¼­°æ.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <appSettings>
  </appSettings>
  <log4net>
    <!--  é‡æ–°èŽ·å–å‘åŠ¨æœºä¿¡æ¯ã€ä¿¡æ¯ã€‘æ—¥å¿—-->
    <appender name="DataProcess_RobotBuffer_ForceOutbound_Info" type="log4net.Appender.RollingFileAppender">
      <file value="d:\\Log\\YuNei\\WCS\\DataProcess_RobotBuffer_ForceOutbound_Info\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyy-MM-dd.LOG" />
      <layout type="log4net.Layout.PatternLayout">
        <!--输出格式-->
        <param name="ConversionPattern" value="%n消息时间:%d [%t] %n消息级别:%-5p %n消 æ¯ ç±»ï¼š%c [%x] %n%m %n "/>
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="DataProcess_RobotBuffer_ForceOutbound_Info" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <!--重新获取发动机信息【错误】日志-->
    <appender name="DataProcess_RobotBuffer_ForceOutbound_Error" type="log4net.Appender.RollingFileAppender">
      <file value="d:\\Log\\YuNei\\WCS\\DataProcess_RobotBuffer_ForceOutbound_Error\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyy-MM-dd.LOG" />
      <layout type="log4net.Layout.PatternLayout">
        <!--输出格式-->
        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 å¸¸ ç±»ï¼š%c [%x] %n%m %n "/>
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="DataProcess_RobotBuffer_ForceOutbound_Error" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="DataProcess_RobotBuffer_ForceOutbound_Info"/>
      <appender-ref ref="DataProcess_RobotBuffer_ForceOutbound_Error"/>
    </root>
  </log4net>
</configuration>
wcs/yunneiWCS/yunneiWCS/log4net_iWare.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <appSettings>
  </appSettings>
  <log4net>
    <!--  é‡æ–°èŽ·å–å‘åŠ¨æœºä¿¡æ¯ã€ä¿¡æ¯ã€‘æ—¥å¿—-->
    <appender name="mesDataTranfficForRealMes_Info" type="log4net.Appender.RollingFileAppender">
      <file value="d:\\Log\\YuNei\\WCS\\mesDataTranfficForRealMes_Info\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyy-MM-dd.LOG" />
      <layout type="log4net.Layout.PatternLayout">
        <!--输出格式-->
        <param name="ConversionPattern" value="%n消息时间:%d [%t] %n消息级别:%-5p %n消 æ¯ ç±»ï¼š%c [%x] %n%m %n "/>
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="mesDataTranfficForRealMes_Info" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <!--重新获取发动机信息【错误】日志-->
    <appender name="mesDataTranfficForRealMes_Error" type="log4net.Appender.RollingFileAppender">
      <file value="d:\\Log\\YuNei\\WCS\\mesDataTranfficForRealMes_Error\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <staticLogFileName value="false" />
      <datePattern value="yyyy-MM-dd.LOG" />
      <layout type="log4net.Layout.PatternLayout">
        <!--输出格式-->
        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 å¸¸ ç±»ï¼š%c [%x] %n%m %n "/>
      </layout>
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="mesDataTranfficForRealMes_Error" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="mesDataTranfficForRealMes_Info"/>
      <appender-ref ref="mesDataTranfficForRealMes_Error"/>
    </root>
  </log4net>
</configuration>
wcs/yunneiWCS/yunneiWCS/yunneiWCS.csproj
@@ -61,6 +61,10 @@
    <Reference Include="HslCommunication">
      <HintPath>..\CommonDll\CommonDll\HslCommunication.dll</HintPath>
    </Reference>
    <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\CommonDll\log4net.dll</HintPath>
    </Reference>
    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -157,6 +161,10 @@
    <Compile Include="TestForm.Designer.cs">
      <DependentUpon>TestForm.cs</DependentUpon>
    </Compile>
    <Compile Include="ThreadTask\mesDataTranfficForRealMes.cs" />
    <Compile Include="Utils\Log4Net\C_LogWriter.cs" />
    <Compile Include="Utils\Log4Net\Log4netHelper.cs" />
    <Compile Include="Utils\Log4Net\LogType.cs" />
    <Compile Include="Utils\TaskNoHelper.cs" />
    <Compile Include="Utils\EnumberHelper.cs" />
    <Compile Include="Utils\FileHelper.cs" />
@@ -231,6 +239,10 @@
    <None Include="App -生产.config">
      <SubType>Designer</SubType>
    </None>
    <None Include="log4net_iWare -编辑版.config" />
    <None Include="log4net_iWare.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Include="packages.config" />
    <None Include="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>