Vraag : gebruikend log4net zuiver binnen wijze slechts schrijft aan db wanneer het ophouden zuiveren.

Hoe kan zuiver ik zo bevestigen wanneer binnen wijze log4net schrijft aan db immediatel?



4e089 "/>
; Initial Catalog=; Geïntegreerde Security=True; „providerName= " System.Data.SqlClient " />








rnLayout " >




















rnLayout " >
vast

tionLayout“/>



rnLayout " >



" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
using Systeem;
het gebruiken van System.Collections.Generic;
het gebruiken van System.Text;

het gebruiken van log4net;

openbaar statisch klassenLogboek
{
   het privé constkoord LOG_REPOSITORY = „blijft“ in gebreke; // zou dit waarschijnlijk in het Web moeten worden geplaatst config.
   privé statische ILog m_log;

   openbare statische nietige Init ()
   {
      log4net. Config.XmlConfigurator.Configure ();
   }

   de openbare statische leegte schrijft (koordbericht, LogMessageType messageType)
   {
      DoLog (bericht, messageType, ongeldig, Type.GetType („System.Object“));
   }

   de openbare statische leegte schrijft (koordbericht, LogMessageType messageType, het type van Type)
   {
      DoLog (bericht, messageType, ongeldig, type);
   }

   de openbare statische leegte schrijft (koordbericht, LogMessageType messageType, ex Uitzondering)
   {
      DoLog (bericht, messageType, ex, Type.GetType („System.Object“));
   }

   de openbare statische leegte schrijft (koordbericht, LogMessageType messageType, ex Uitzondering,
      Het type van type)
   {
      DoLog (bericht, messageType, ex, type);
   }

   de openbare statische leegte beweert (boolvoorwaarde, koordbericht)
   {
      Beweer (voorwaarde, bericht, Type.GetType („System.Object“));
   }

   de openbare statische leegte beweert (boolvoorwaarde, koordbericht, het type van Type)
   {
      als (valse voorwaarde ==)
         Schrijf (bericht, LogMessageType.Info);
   }

   privé statische nietige DoLog (koordbericht, LogMessageType messageType, ex Uitzondering,
      Het type van type)
   {
      m_log = LogManager.GetLogger (type);

      schakelaar (messageType)
      {
         geval LogMessageType.Debug:
            Log.m_log.Debug (ex bericht,);
            onderbreking;

         geval LogMessageType.Info:
            Log.m_log.Info (ex bericht,);
            onderbreking;

         geval LogMessageType.Warn:
            Log.m_log.Warn (ex bericht,);
            onderbreking;

         geval LogMessageType.Error:
            Log.m_log.Error (ex bericht,);
            onderbreking;

         geval LogMessageType.Fatal:
            Log.m_log.Fatal (ex bericht,);
            onderbreking;
      }
   }

   openbare enum LogMessageType
   {
      Zuiver,
      Info,
      Waarschuw,
      Fout,
      Fataal
   }
}

Antwoord : gebruikend log4net zuiver binnen wijze slechts schrijft aan db wanneer het ophouden zuiveren.

Voor iterators… Het kan niet zo de eerste keer bekijken, maar iterators zijn een soort natuurlijker.  Wanneer u een probleem oplost, neigt u te denken in termen „alle elementen van…“, of „mathematisch voor alle elementen in…“ verwerk.  De enige conventionele manier te doen die een lijn te gebruiken is.  De tijdjelijn in c-Familie talen is te algemeen; u hebt doet sommige stappen op uw.  Voor lijn in c-Familie is de talen een kleine syntactische verbetering van het tijdje.  In andere programmeertalen, voor lijn is een getelde lijn.  Maar dit betekent ook dat u een index aan het geïndexeerdek element moet omzetten.  Wegens dat, neigt u vaak om de elementen in één of andere geïndexeerde structuur te zetten -- aan een serie of aan een vector.

Als u meer over het denkt, wat uw werkelijk behoefte een soort algemene lijn is die lijnen door alle elementen van een container zonder één of andere numerieke index noodzakelijk voor te bereiden.  Als u het proces verpersoonlijkt, zegt de arbeider aan een andere één „me de volgende“, en „geef me 3254ste“ niet geven.  Dit is precies welke iterators voor goed zijn.  Iterator is op de een of andere manier verbindend aan de container.  Dan kunt u in interne details (of het binnen wordt geïndexeerdg, of of het een verbonden structuur is) niet geinteresseerd zijn.  Met andere woorden, brengen iterators meer abstractie.

Jammer genoeg, zijn iterators nieuwer dan de kern van C++ en daarom er geen algemene lijn en syntaxis zijn om elk van dit duidelijker syntactisch te maken.  Zodra u aan betere sytax van de algemene lijn went (in andere talen, als in Python waar iterators bijna magisch werken, verborgen), mist u werkelijk die syntaxis in C++.  De nieuwe C++ norm gaat het verbeteren een beetje.
Andere oplossingen  
 
programming4us programming4us