Nettizzati

Architetture, programmazione, oggetti …

  •  

    marzo: 2008
    L M M G V S D
         
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31  
  • Blog Stats

    • 950 hits

Archivio per marzo 2008

Log4Net: logging in xml

Pubblicato da nettizzati su 20 marzo , 2008

Oggi vedremo come creare file di log in xml tramite Log4Net.
Il normale uso di Log4Net permette di creare file di log in formato testuale,
ma se è necessario creare dei file di log in formato xml bisogna lavorare un pò di configurazione.
La parte da modificare nella configurazione standard è quella che riguarda l’appender ed in particolare la sezione ‘layout’.
Sostituendo il normale layout, <layout type=”log4net.Layout.PatternLayout”>, con il layout XmlLayout, <layout type=”log4net.Layout.XmlLayout”> si ottiene il risultato voluto.
In reltà questa modifica non è sufficente in quanto l’appender scriverà un file xml mancante dei tags di intestazione del nodo root e quindi con un formato non corretto.
Per ovviare a questo inconveniente sarà necessario inserire nella configurazione del layout
due properties: header e footer che rispettivamente conterranno il testo dell’intestazione e apertura del nodo root e la chiusura del nodo root.
La configurazione del layout apparirà come segue:
<layout type=”log4net.Layout.XmlLayout”>
<param name=”Prefix” value=”" />
<header type=”log4net.Util.PatternString”  value=”&lt;?xml version=’1.0′ ?&gt; &lt;events&gt; %newline” />
<footer type=”log4net.Util.PatternString” value=”&lt;/events&gt; %newline” />
</layout>

nell’esempio sopra citato il tag del nodo root avrà la seguente struttura: <events></events>
naturalmente tale valore può essere modificato a seconda della necessità.
La proprietà ‘appendToFile’ dell’appender dovrà essere impostata a ‘false’ affinchè logs
di esecuzioni diverse non vengano accodate e rendano la struttura del file non corretta.
Di seguito la configurazione completa del logger:

<appender name=”ApplicationXmlLog” type=”log4net.Appender.RollingFileAppender”>
<param name=”file” value=”c:\Orange\Logs\Server.Import\Application\Application-log.xml”/>
<param name=”rollingStyle” value=”Date” />
<param name=”datePattern” value=”ddMMyyyy” />
<param name=”appendToFile” value=”false” />
<param name=”maximumFileSize” value=”100MB” />
<param name=”maxSizeRollBackups” value=”-1″ />
<layout type=”log4net.Layout.XmlLayout”>
<param name=”Prefix” value=”" />
<header type=”log4net.Util.PatternString”  value=”&lt;?xml version=’1.0′ ?&gt; &lt;events&gt; %newline” />
<footer type=”log4net.Util.PatternString” value=”&lt;/events&gt; %newline” />
</layout>
</appender>

<root>
<level value=”WARN”/>
</root>
<logger name=”Application”>
<level value=”INFO”/>
<appender-ref ref=”ApplicationXmlLog”/>
</logger>

…buon divertimento!

Pubblicato in: C#, programmazione | Contrassegnato da tag: , , , | Lascia un commento »

Disegnare con C#

Pubblicato da nettizzati su 17 marzo , 2008

In questo post vedremo come creare un semplice form all’inteno del quale è possibile disegnare linee tramite il mouse.Quello che vogliamo ottenere è : mi sposto sul form con il mouse, click tasto sinistro (tengo premuto),
muovo il mouse, disegno la linea con gli spostamenti del mouse, rilascio il tasto, finisco di disegnare.

Sostanzialmente vengono gestiti tre eventi: Form2_MouseDown, Form2_MouseUp e Form2_MouseMove.

Tramite una variabile di stato (isDrawing) che imposto a true nell’evento Form2_MouseDown e
imposto a false nell’evento Form2_MouseUp indico quando disegnare e quando no.
Con due variabili istanza (xCurrent,yCurrent) tengo memoria della posizione corrente del mouse e
altre due (xOld, yOld) di quella precedente.

Nell’evento Form2_MouseMove verifico se è possibile disegnare (isDrawing==true),
in caso affermativo,
-leggo la posizione corrente del mouse e la memorizzo in due variabili istanza (xCurrent,yCurrent),
-se sono nella posizione iniziale (click del mouse), memorizzo la posizione corrente (meno un pixel) nelle variabili (xOld, yOld)

-disegno una linea dalla posizione (xOld, yOld) alla posizione (xCurrent,yCurrent)
-memorizzo la posizione corrente (xCurrent,yCurrent) nelle variabili (xOld, yOld)

Di seguito il codice completo:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public partial class Form2 : Form
{
private bool isDrawing = false;
private int xOld = 0;
private int yOld = 0;private int xCurrent = 0;
private int yCurrent = 0;private System.Drawing.Pen myPen = new Pen(Color.Orange, 2);
private Graphics graphThis;public Form2()
{
InitializeComponent();
graphThis = this.CreateGraphics();
}private void Form2_MouseDown(object sender, MouseEventArgs e)
{
isDrawing = true;
xOld = – 1;
yOld = – 1;

}

private void Form2_MouseUp(object sender, MouseEventArgs e)
{
isDrawing = false;

}

private void Form2_MouseMove(object sender, MouseEventArgs e)
{
if (isDrawing)
{
xCurrent = e.X;
yCurrent = e.Y;
//condizione di avvio
if (xOld == -1 && yOld == -1)
{
xOld = e.X-1;
yOld = e.Y-1;
}

graphThis.DrawLine(myPen, xOld, yOld, xCurrent, yCurrent);
xOld = xCurrent;
yOld = yCurrent;
}
}

}


				

Pubblicato in: C#, programmazione | Contrassegnato da tag: | Lascia un commento »

Hello world!

Pubblicato da nettizzati su 12 marzo , 2008

Salve a tutti!

Pubblicato in: Uncategorized | 1 Commento »

 
Iscriviti

Get every new post delivered to your Inbox.