diff --git a/IOB-WIN/IobFanuc.cs b/IOB-WIN/IobFanuc.cs index 9bd63853..78d6b02a 100644 --- a/IOB-WIN/IobFanuc.cs +++ b/IOB-WIN/IobFanuc.cs @@ -122,9 +122,9 @@ namespace IOB_WIN MemBlockX = new byte[fIni.ReadInteger("MEMORY", "AREAX_SIZE", 8)]; MemBlockY = new byte[fIni.ReadInteger("MEMORY", "AREAY_SIZE", 8)]; // loggo aree di memoria avviate... - lg.Info(string.Format("Avviare area di memoria MemBlockG: {0} byte", MemBlockG.Length)); - lg.Info(string.Format("Avviare area di memoria MemBlockX: {0} byte", MemBlockX.Length)); - lg.Info(string.Format("Avviare area di memoria MemBlockY: {0} byte", MemBlockY.Length)); + lgInfo(string.Format("Avviare area di memoria MemBlockG: {0} byte", MemBlockG.Length)); + lgInfo(string.Format("Avviare area di memoria MemBlockX: {0} byte", MemBlockX.Length)); + lgInfo(string.Format("Avviare area di memoria MemBlockY: {0} byte", MemBlockY.Length)); // effettuo lettura della conf sigLUT... cercando 1:1 i bit... string currBit = ""; @@ -139,7 +139,7 @@ namespace IOB_WIN // è little endian (NON serve conversione) hasBigEndian = false; - lg.Info("Start init Adapter FANUC all'IP {0}:{1} per IOB {2}", IOBConf.cncIpAddr, IOBConf.cncPort, IOBConf.codIOB); + lgInfo("Start init Adapter FANUC all'IP {0}:{1} per IOB {2}", IOBConf.cncIpAddr, IOBConf.cncPort, IOBConf.codIOB); // Creo oggetto connessione NC parentForm.commPlcActive = true; @@ -148,16 +148,16 @@ namespace IOB_WIN // aggiungo referenza obj FANUC FANUC_ref = (FANUC)Runtime.NC; - if (utils.CRB("verbose")) lg.Info("FANUC_ref da CncLib"); + if (utils.CRB("verbose")) lgInfo("FANUC_ref da CncLib"); // disconnetto e connetto... - if (utils.CRB("verbose")) lg.Info("FANUC: tryDisconnect"); + if (utils.CRB("verbose")) lgInfo("FANUC: tryDisconnect"); tryDisconnect(); - lg.Info("FANUC: tryConnect"); + lgInfo("FANUC: tryConnect"); tryConnect(); if (utils.CRB("enableContapezzi")) { - lg.Info("FANUC: inizio gestione contapezzi"); + lgInfo("FANUC: inizio gestione contapezzi"); try { // verifico quale modalità sia richiesta: STD (6711) oppure BIT (Custom, con indicazione area) @@ -166,17 +166,17 @@ namespace IOB_WIN if (currIobConf.optPar["PZCOUNT_MODE"] == "STD") { // legge da IO server ULTIMO valore CONTPEZZI al riavvio... - lg.Info("Lettura contapezzi dall'url {0}", urlGetPzCount); + lgInfo("Lettura contapezzi dall'url {0}", urlGetPzCount); string currServerCount = utils.callUrl(urlGetPzCount); if (currServerCount != "") { int.TryParse(currServerCount, out contapezzi); - lg.Info("Ricevuta conferma da server di {0} pezzi registrati per ODL", currServerCount); + lgInfo("Ricevuta conferma da server di {0} pezzi registrati per ODL", currServerCount); } else { contapezzi = 0; - lg.Info("Errore lettura contapezzi (empty)"); + lgInfo("Errore lettura contapezzi (empty)"); } // per adesso imposto lettura fanuc == contapezzi (poi farà vera lettura...) lastCountCNC = contapezzi; @@ -184,13 +184,13 @@ namespace IOB_WIN else { contapezzi = 0; - lg.Info("Contapezzi STD disabilitato: modalità {0}", currIobConf.optPar["PZCOUNT_MODE"]); + lgInfo("Contapezzi STD disabilitato: modalità {0}", currIobConf.optPar["PZCOUNT_MODE"]); } } else { contapezzi = 0; - lg.Info("Parametro mancante PZCOUNT_MODE"); + lgInfo("Parametro mancante PZCOUNT_MODE"); } } catch (Exception exc) @@ -199,7 +199,7 @@ namespace IOB_WIN } } // finisco INIT ADAPTER - lg.Info("End init Adapter FANUC"); + lgInfo("End init Adapter FANUC"); } /// @@ -216,8 +216,8 @@ namespace IOB_WIN connectionOk = false; // resetto timing! TimingData.resetData(); - lg.Info(szStatusConnection); - lg.Info("Effettuata disconnessione adapter FANUC!"); + lgInfo(szStatusConnection); + lgInfo("Effettuata disconnessione adapter FANUC!"); } catch (Exception exc) { @@ -239,7 +239,7 @@ namespace IOB_WIN // controllo che il ping sia stato tentato almeno pingTestSec fa... if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) { - if (verboseLog || periodicLog) lg.Info("ConnKO - tryConnect"); + if (verboseLog || periodicLog) lgInfo("ConnKO - tryConnect"); // in primis salvo data ping... lastPING = DateTime.Now; // ora PING!!! @@ -257,7 +257,7 @@ namespace IOB_WIN parentForm.commPlcActive = true; FANUC_ref.Connect(ref szStatusConnection); parentForm.commPlcActive = false; - lg.Info("szStatusConnection: " + szStatusConnection); + lgInfo("szStatusConnection: " + szStatusConnection); connectionOk = true; // refresh stato allarmi!!! if (connectionOk) @@ -266,13 +266,13 @@ namespace IOB_WIN if (adpRunning) { // carico status allarmi (completo) - lg.Info("Inizio refresh completo stato allarmi..."); + lgInfo("Inizio refresh completo stato allarmi..."); forceAlarmCheck(); - lg.Info("Completato refresh completo stato allarmi!"); + lgInfo("Completato refresh completo stato allarmi!"); } else { - lg.Info("Connessione OK"); + lgInfo("Connessione OK"); } } else @@ -284,14 +284,14 @@ namespace IOB_WIN { lg.Fatal(string.Format("Errore nella connessione all'adapter FANUC: {0}{1}{2}", szStatusConnection, Environment.NewLine, exc)); connectionOk = false; - lg.Info(string.Format("Eccezione in TryConnect, Adapter NON running, pausa di {0} msec prima di ulteriori tentativi di riconnessione", utils.CRI("waitRecMSec"))); + lgInfo(string.Format("Eccezione in TryConnect, Adapter NON running, pausa di {0} msec prima di ulteriori tentativi di riconnessione", utils.CRI("waitRecMSec"))); } } else { // loggo no risposta ping ... connectionOk = false; - if (verboseLog || periodicLog) lg.Info(string.Format("Attenzione: controllo PING fallito per IP {0} - {1}", currIobConf.cncIpAddr, reply.Status)); + if (verboseLog || periodicLog) lgInfo(string.Format("Attenzione: controllo PING fallito per IP {0} - {1}", currIobConf.cncIpAddr, reply.Status)); } } } @@ -310,7 +310,7 @@ namespace IOB_WIN base.readSemafori(); try { - if (verboseLog) lg.Info("inizio read semafori"); + if (verboseLog) lgInfo("inizio read semafori"); parentForm.sIN = Semaforo.SV; // inizio letture, SEMPRE DA ZERO (possibile ottimizzazione...) int memIndex = 0; @@ -325,7 +325,7 @@ namespace IOB_WIN { for (int i = 0; i < MemBlockY.Length; i++) { - lg.Info(string.Format("MemBlockY{0}: {1}", i, utils.binaryForm((int)MemBlockY[i]))); + lgInfo(string.Format("MemBlockY{0}: {1}", i, utils.binaryForm((int)MemBlockY[i]))); } } } @@ -340,7 +340,7 @@ namespace IOB_WIN { for (int i = 0; i < MemBlockX.Length; i++) { - lg.Info(string.Format("MemBlockX{0}: {1}", i, utils.binaryForm((int)MemBlockX[i]))); + lgInfo(string.Format("MemBlockX{0}: {1}", i, utils.binaryForm((int)MemBlockX[i]))); } } } @@ -402,7 +402,7 @@ namespace IOB_WIN // salvo in semaforo! B_input += 1 << 2; // registro contapezzi - lg.Info(string.Format("Contapezzi FANUC: {0} | Contapezzi interno {1}", lastCountCNC, contapezzi)); + lgInfo(string.Format("Contapezzi FANUC: {0} | Contapezzi interno {1}", lastCountCNC, contapezzi)); } else if (contapezzi > lastCountCNC) // in questo caso resetto { @@ -467,7 +467,7 @@ namespace IOB_WIN } } // log opzionale! - if (verboseLog) lg.Info(string.Format("Trasformazione B_input: {0}", B_input)); + if (verboseLog) lgInfo(string.Format("Trasformazione B_input: {0}", B_input)); } /// /// Recupero programma in lavorazione @@ -721,11 +721,11 @@ namespace IOB_WIN { // leggo TUTTI i 9999 byte della memoria D... byte[] MemBlockD = new byte[memSyzeByte]; - if (verboseLog) lg.Info("START MemDump AreaD"); + if (verboseLog) lgInfo("START MemDump AreaD"); stopwatch.Restart(); FanucMemRW(R, FANUC.MemType.D, memIndex, ref MemBlockD); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-MemDumpD", MemBlockD.Length), stopwatch.ElapsedTicks); - if (verboseLog) lg.Info("END MemDump AreaD"); + if (verboseLog) lgInfo("END MemDump AreaD"); // file out! string nomeFile = ""; Dictionary mappaValori = new Dictionary(); @@ -746,11 +746,11 @@ namespace IOB_WIN int memIndex = 0; // leggo TUTTI i 9999 byte della memoria D... byte[] MemBlockD = new byte[9999]; - if (verboseLog) lg.Info("START MemDump AreaD"); + if (verboseLog) lgInfo("START MemDump AreaD"); stopwatch.Restart(); FanucMemRW(R, FANUC.MemType.D, memIndex, ref MemBlockD); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-MemDumpD", MemBlockD.Length), stopwatch.ElapsedTicks); - if (verboseLog) lg.Info("END MemDump AreaD"); + if (verboseLog) lgInfo("END MemDump AreaD"); // string nomeFile = ""; // salvo in file i dati letti come BYTE @@ -790,9 +790,9 @@ namespace IOB_WIN // leggo TUTTI i 9999 byte della memoria Y... byte[] MemBlockY = new byte[10]; stopwatch.Restart(); - if (verboseLog) lg.Info("START MemDump AreaY"); + if (verboseLog) lgInfo("START MemDump AreaY"); FanucMemRW(R, FANUC.MemType.Y, memIndex, ref MemBlockY); - if (verboseLog) lg.Info("END MemDump AreaY"); + if (verboseLog) lgInfo("END MemDump AreaY"); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-MemDumpY", MemBlockY.Length), stopwatch.ElapsedTicks); // string nomeFile = ""; diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index c01263fb..8785c799 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -293,21 +293,20 @@ namespace IOB_WIN /// public IobGeneric(AdapterForm caller, IobConfiguration IOBConf) { - // aggiungo nel logger IDX Macchina - LogManager.Configuration.Variables["codIOB"] = IOBConf.codIOB; - lg = LogManager.GetCurrentClassLogger(); - - lg.Info("Avvio preliminare AdapterGeneric"); - // configurazione... currIobConf = IOBConf; + + // aggiungo nel logger IDX Macchina + lg = LogManager.GetCurrentClassLogger(); + + lgInfo("Avvio preliminare AdapterGeneric"); // aggiungo altri defaults setDefaults(); // salvo il form chiamante parentForm = caller; // concluso! - lg.Info("Istanziata classe preliminare IOBGeneric"); + lgInfo("Istanziata classe preliminare IOBGeneric"); } /// /// Imposto alcuni valori di default @@ -334,6 +333,55 @@ namespace IOB_WIN lastPeriodicLog = DateTime.Now; } + /// + /// Effettua logging INFO corretto impostanto anche la variabile IOB prima di scrivere... + /// + /// + protected void lgInfo(string message) + { + lg.Factory.Configuration.Variables["codIOB"] = currIobConf.codIOB; + lg.Info(message); + } + /// + /// Effettua logging INFO corretto impostanto anche la variabile IOB prima di scrivere... + /// + /// + /// + protected void lgInfo(string message, params object[] args) + { + lg.Factory.Configuration.Variables["codIOB"] = currIobConf.codIOB; + lg.Info(message, args); + } + /// + /// Effettua logging ERROR corretto impostanto anche la variabile IOB prima di scrivere... + /// + /// + protected void lgError(string message) + { + lg.Factory.Configuration.Variables["codIOB"] = currIobConf.codIOB; + lg.Error(message); + } + /// + /// Effettua logging ERROR corretto impostanto anche la variabile IOB prima di scrivere... + /// + /// + /// + protected void lgError(string message, params object[] args) + { + lg.Factory.Configuration.Variables["codIOB"] = currIobConf.codIOB; + lg.Error(message, args); + } + /// + /// Effettua logging ERROR corretto impostanto anche la variabile IOB prima di scrivere... + /// + /// + /// + /// + protected void lgError(Exception exception, string message, params object[] args) + { + lg.Factory.Configuration.Variables["codIOB"] = currIobConf.codIOB; + lg.Error(exception, message, args); + } #region metodi adapter @@ -351,7 +399,7 @@ namespace IOB_WIN /// public virtual void startAdapter(int port) { - lg.Info("Starting adapter..."); + lgInfo("Starting adapter..."); parentForm.commPlcActive = false; adpRunning = true; dtAvvioAdp = DateTime.Now; @@ -416,7 +464,7 @@ namespace IOB_WIN } catch (Exception exc) { - lg.Error(exc, string.Format("Errore in gestione svuotamento/invio preliminare code memoria{0}{1}", Environment.NewLine, exc)); + lgError(exc, "Errore in gestione svuotamento/invio preliminare code memoria"); } // controllo connessione/connettività if (connectionOk) @@ -482,7 +530,7 @@ namespace IOB_WIN catch (Exception exc) { // segnalo eccezione e indico disconnesso... - lg.Error(exc, string.Format("Errore in gestione ciclo principale ADP, fermo adapter{0}{1}", Environment.NewLine, exc)); + lgError(exc, string.Format("Errore in gestione ciclo principale ADP, fermo adapter{0}{1}", Environment.NewLine, exc)); parentForm.fermaAdapter(true); } // tolgo flag running @@ -490,13 +538,13 @@ namespace IOB_WIN } else { - if (periodicLog) lg.Info("ADP not running..."); + if (periodicLog) lgInfo("ADP not running..."); } } else { // log ADP running - lg.Error("Non eseguo chiamata: ADP ancora in running"); + lgError("Non eseguo chiamata: ADP ancora in running"); // se è bloccato da oltre maxSec lo sblocco... if (DateTime.Now.Subtract(adpStartRun).TotalSeconds > utils.CRI("maxAdapterLockSec")) { @@ -534,18 +582,18 @@ namespace IOB_WIN { if (TimingData.results.Count > 0) { - lg.Info("{0}--------------- START TIMING DATA ---------------", Environment.NewLine); + lgInfo("{0}--------------- START TIMING DATA ---------------", Environment.NewLine); int globNumCall = 0; TimeSpan globAvgMsec = new TimeSpan(0); foreach (TimeRec item in TimingData.results) { - lg.Info("Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds); + lgInfo("Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds); globNumCall += item.numCall; globAvgMsec += item.totMsec; } // riporto conteggio medio al secondo... - lg.Info("Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds); - lg.Info("{0}--------------- STOP TIMING DATA ---------------{0}", Environment.NewLine); + lgInfo("Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds); + lgInfo("{0}--------------- STOP TIMING DATA ---------------{0}", Environment.NewLine); // mostro in form statistiche globali! parentForm.updateComStats(string.Format("Periodo: {0:N2}min | {1} x {2:N2}ms | canale {3:P3}", DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globNumCall, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds)); } @@ -620,7 +668,7 @@ namespace IOB_WIN } catch (Exception exc) { - lg.Error(string.Format("Eccezione in getStoredVal: {0}{1}", Environment.NewLine, exc)); + lgError(string.Format("Eccezione in getStoredVal: {0}{1}", Environment.NewLine, exc)); } return value; } @@ -638,7 +686,7 @@ namespace IOB_WIN } catch (Exception exc) { - lg.Error(string.Format("Eccezione in getStoredValUInt: {0}{1}", Environment.NewLine, exc)); + lgError(string.Format("Eccezione in getStoredValUInt: {0}{1}", Environment.NewLine, exc)); } // verifico che il valore sia minore di 9/10 del valore massimo... answ = (answ < (uint.MaxValue / 10 * 9)) ? answ : 0; @@ -676,7 +724,7 @@ namespace IOB_WIN } catch (Exception exc) { - lg.Error(string.Format("Eccezione in getStoredValDouble: {0}{1}", Environment.NewLine, exc)); + lgError(string.Format("Eccezione in getStoredValDouble: {0}{1}", Environment.NewLine, exc)); } answ = (answ < (double.MaxValue / 10 * 9)) ? answ : 0; return answ; @@ -848,7 +896,7 @@ namespace IOB_WIN // ora trimmo vettore al solo numero VERO dei valori caricati... Array.Resize(ref vettoreConf, numRiga); - if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore di {0} variabili per file {1}", numRiga, nomeFile)); + if (utils.CRB("verbose")) lgInfo(string.Format("Fine caricamento vettore di {0} variabili per file {1}", numRiga, nomeFile)); } /// /// Decodifica file MAP generico @@ -934,7 +982,7 @@ namespace IOB_WIN // ogni 5 loggo... if (countSim % 5 == 0) { - lg.Info("Read {0} sim data", countSim); + lgInfo("Read {0} sim data", countSim); } } else @@ -966,7 +1014,7 @@ namespace IOB_WIN string fileName = utils.simDataFile; string linea; totRighe = File.ReadLines(fileName).Count(); - lg.Info("File SIM: TROVATE {0} righe", totRighe); + lgInfo("File SIM: TROVATE {0} righe", totRighe); // ora conto righe effettive... totRighe = 0; // carica da file... @@ -986,7 +1034,7 @@ namespace IOB_WIN } // chiudo file file.Close(); - lg.Info("File SIM: LETTE {0} righe", totRighe); + lgInfo("File SIM: LETTE {0} righe", totRighe); } #endregion @@ -1058,7 +1106,7 @@ namespace IOB_WIN } catch (Exception exc) { - lg.Error(exc, "Errore in composizione urlSetPzCount"); + lgError(exc, "Errore in composizione urlSetPzCount"); } return answ; } @@ -1077,7 +1125,7 @@ namespace IOB_WIN } catch (Exception exc) { - lg.Error(exc, "Errore in composizione urlGetPzCount"); + lgError(exc, "Errore in composizione urlGetPzCount"); } return answ; } @@ -1172,11 +1220,11 @@ namespace IOB_WIN // se ORA sono online riporto... if (answ) { - lg.Info("SERVER ONLINE"); + lgInfo("SERVER ONLINE"); } else { - lg.Info("SERVER OFFLINE"); + lgInfo("SERVER OFFLINE"); } // salvo nuovo status... MPOnline = answ; @@ -1213,11 +1261,11 @@ namespace IOB_WIN // se ORA sono online riporto... if (answ) { - lg.Info("IOB ONLINE"); + lgInfo("IOB ONLINE"); } else { - lg.Info("IOB OFFLINE"); + lgInfo("IOB OFFLINE"); } // salvo nuovo status... IobOnline = answ; @@ -1379,7 +1427,7 @@ namespace IOB_WIN // se era zero indico START blink... if (i_counters[i] == 0) { - lg.Info("START BLINK: B{0}", i); + lgInfo("START BLINK: B{0}", i); } // imposto comunque contatore al cambio fronte... i_counters[i] = currIobConf.MAX_COUNTER_BLINK; @@ -1407,7 +1455,7 @@ namespace IOB_WIN } else { - lg.Info("END BLINK: B{0}", i); + lgInfo("END BLINK: B{0}", i); } } } @@ -1428,7 +1476,7 @@ namespace IOB_WIN } else { - lg.Error("Errore connessione mancante x readSemafori"); + lgError("Errore connessione mancante x readSemafori"); } } else @@ -1456,7 +1504,7 @@ namespace IOB_WIN } else { - lg.Error("Errore connessione mancante x getPrgName"); + lgError("Errore connessione mancante x getPrgName"); } } else @@ -1490,7 +1538,7 @@ namespace IOB_WIN } else { - lg.Error("Errore connessione mancante x getSysInfo"); + lgError("Errore connessione mancante x getSysInfo"); } } else @@ -1580,7 +1628,7 @@ namespace IOB_WIN } else { - lg.Error("Errore connessione mancante x getDynData"); + lgError("Errore connessione mancante x getDynData"); } } else @@ -1621,7 +1669,7 @@ namespace IOB_WIN } else { - lg.Error("Errore connessione mancante x getOverrides"); + lgError("Errore connessione mancante x getOverrides"); } } else @@ -1719,7 +1767,7 @@ namespace IOB_WIN // --> accodo (valore già formattato)! QueueIN.Enqueue(qEncodeIN); // loggo! - lg.Info(string.Format("[QUEUE-IN] {0}", qEncodeIN)); + lgInfo(string.Format("[QUEUE-IN] {0}", qEncodeIN)); // aggiorno counters ed eventuale reset nReadFilt++; if (nReadFilt > int.MaxValue - 1) nReadFilt = 0; // per evitare buffer overflow... @@ -1738,7 +1786,7 @@ namespace IOB_WIN // --> accodo (valore già formattato)! QueueFLog.Enqueue(encodedVal); // loggo! - lg.Info(string.Format("[QUEUE-FLOG] {0}", encodedVal)); + lgInfo(string.Format("[QUEUE-FLOG] {0}", encodedVal)); counterFLog++; if (counterFLog > 9999) counterFLog = 0; } @@ -1770,7 +1818,7 @@ namespace IOB_WIN // chiamo URL! string answ = callUrl(lastUrl); // loggo! - lg.Info(string.Format("[SEND] {0} -> {1}", queueVal, answ)); + lgInfo(string.Format("[SEND] {0} -> {1}", queueVal, answ)); // se "OK" verde, altrimenti errore --> ROSSO if (answ == "OK") { @@ -1785,7 +1833,7 @@ namespace IOB_WIN { parentForm.sOUT = Semaforo.SV; // loggo! - lg.Info(string.Format("{0} -> [SIM]", queueVal)); + lgInfo(string.Format("{0} -> [SIM]", queueVal)); } nSendOut++; // riporto cosa inviato diff --git a/IOB-WIN/NLog.config b/IOB-WIN/NLog.config index 4a6970b1..230c34e7 100644 --- a/IOB-WIN/NLog.config +++ b/IOB-WIN/NLog.config @@ -32,7 +32,7 @@