Пример #1
0
        public void Write(string sEvent, string sData, HLogLevel Level)
        {
            // Método para escribir en el fichero de log
            Monitor.Enter(this);
            try
            {
                // Si el log está abierto y el nivel de detalle es adecuado ...
                if ((fFile != null) && (Level >= LogLevel))
                {
                    // Obtenemos el nombre del fichero en el que deberíamos escribir
                    string aux = sLogPath + "\\" + this.sBaseName + DateTime.Now.Day.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Year.ToString() + ".log";

                    // Si no es el fichero en el que estamos escribiendo ...
                    if (aux != sFile)
                    {
                        // Hemos cambiado de día.
                        sFile = aux;
                        fFile.Close();
                        File.Delete(sFile);
                        fFile = File.AppendText(sFile);
                        PrivateWrite("Log.Open", DateTime.Now.ToLongDateString(), HLogLevel.Record);
                    }

                    // Escribimos en el fichero
                    PrivateWrite(sEvent, sData, Level);
                }
            }
            finally
            {
                Monitor.Exit(this);
            }
        }
Пример #2
0
 public Log()
 {
     // Inicializamos los atributos a vacío
     sFile     = "";
     sLogPath  = "";
     fFile     = null;
     sBaseName = "";
     LogLevel  = HLogLevel.Record;
 }
Пример #3
0
        private void PrivateWrite(string sEvent, string sData, HLogLevel Level)
        {
            // Escritura en el fichero
            fFile.WriteLine
            (
                DateTime.Now.ToLongTimeString() + ", " + Level.ToString() + ", " + sEvent + sData// + "," + sData
            );

            // Nos aseguramos de que no se quede en el buffer
            fFile.Flush();
        }
Пример #4
0
 public void SetLogLevel(HLogLevel LogLevel)
 {
     // Método para modificar el nivel de detalle del log
     Monitor.Enter(this);
     try
     {
         this.LogLevel = LogLevel;
     }
     finally
     {
         Monitor.Exit(this);
     }
 }
Пример #5
0
        public void Open(HLogLevel LogLevel, string sBaseName)
        {
            Monitor.Enter(this);
            try
            {
                // Nivel de escritura en el log
                this.LogLevel = LogLevel;

                // Directorio en el que reside el ejecutable
                sLogPath = GetLogPath();

                // Si no se ha especificado, el nombre se compone con el propio ejecutable
                if (sBaseName == "")
                {
                    this.sBaseName = GetExecutableName();
                }
                else
                {
                    this.sBaseName = sBaseName;
                }

                // Fichero en el que almacenaremos el log ahora
                sFile = sLogPath + "\\" + this.sBaseName + DateTime.Now.Day.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Year.ToString() + ".log";

                // Si el directorio no existe ...
                if (!Directory.Exists(sLogPath))
                {
                    Directory.CreateDirectory(sLogPath);
                }

                // Creamos el streamer de escritura
                fFile = File.AppendText(sFile);

                // Añadimos un primer registro al log
                PrivateWrite("Log.Open", DateTime.Now.ToLongDateString(), HLogLevel.Record);
            }
            finally
            {
                Monitor.Exit(this);
            }
        }