Added Null and Console Handlers

This commit is contained in:
R. Eric Wheeler 2017-02-25 20:17:18 -08:00
parent 556a93b4fc
commit f19f0ad275
4 changed files with 189 additions and 5 deletions

90
Logger.ConsoleHandler.pp Normal file
View File

@ -0,0 +1,90 @@
{*******************************************************}
{ Renegade BBS }
{ Copyright (c) 1990-2013 The Renegade Dev Team }
{ Copyleft (ↄ) 2016-2017 Renegade BBS }
{ This file is part of Renegade BBS }
{ Renegade is free software: you can redistribute it }
{ and/or modify it under the terms of the GNU General }
{ Public License as published by the Free Software }
{ Foundation, either version 3 of the License, or }
{ (at your option) any later version. }
{ Renegade is distributed in the hope that it will be }
{ useful, but WITHOUT ANY WARRANTY; without even the }
{ implied warranty of MERCHANTABILITY or FITNESS FOR }
{ A PARTICULAR PURPOSE. See the GNU General Public }
{ License for more details. }
{ You should have received a copy of the GNU General }
{ Public License along with Renegade. If not, see }
{ <http://www.gnu.org/licenses/>. }
{*******************************************************}
{ _______ __ }
{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
{ |. l | -__| | -__| _ | _ | _ | -__| }
{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
{ |: | | |_____| }
{ |::.|:. | }
{ `--- ---' }
{*******************************************************}
{$mode objfpc}
{$codepage utf8}
{$h+}
unit Logger.ConsoleHandler;
interface
uses
Classes,
SysUtils,
Logger.HandlerInterface;
type
ConsoleHandler = class(TObject, LoggingHandlerInterface)
Private
LogIdentifier : UTF8String;
Public
constructor Create();
destructor Destroy();
function Open(Identifier: UTF8String): boolean;
function Close(): boolean;
function Write(const LogData: UTF8String): boolean;
end;
implementation
constructor ConsoleHandler.Create();
begin
inherited Create;
end;
destructor ConsoleHandler.Destroy();
begin
inherited Destroy;
end;
function ConsoleHandler.Open(Identifier: UTF8String) : boolean;
begin
LogIdentifier := Identifier;
end;
function ConsoleHandler.Close(): boolean;
begin
Result := True;
end;
function ConsoleHandler.Write(const LogData: UTF8String): boolean;
var
LogMessage : UTF8String;
begin
LogMessage := Format('%S[%D] %S', [LogIdentifier, GetProcessId(), LogData]);
Writeln(LogMessage);
Result := True;
end;
end.

84
Logger.NullHandler.pp Normal file
View File

@ -0,0 +1,84 @@
{*******************************************************}
{ Renegade BBS }
{ Copyright (c) 1990-2013 The Renegade Dev Team }
{ Copyleft (ↄ) 2016-2017 Renegade BBS }
{ This file is part of Renegade BBS }
{ Renegade is free software: you can redistribute it }
{ and/or modify it under the terms of the GNU General }
{ Public License as published by the Free Software }
{ Foundation, either version 3 of the License, or }
{ (at your option) any later version. }
{ Renegade is distributed in the hope that it will be }
{ useful, but WITHOUT ANY WARRANTY; without even the }
{ implied warranty of MERCHANTABILITY or FITNESS FOR }
{ A PARTICULAR PURPOSE. See the GNU General Public }
{ License for more details. }
{ You should have received a copy of the GNU General }
{ Public License along with Renegade. If not, see }
{ <http://www.gnu.org/licenses/>. }
{*******************************************************}
{ _______ __ }
{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
{ |. l | -__| | -__| _ | _ | _ | -__| }
{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
{ |: | | |_____| }
{ |::.|:. | }
{ `--- ---' }
{*******************************************************}
{$mode objfpc}
{$codepage utf8}
{$h+}
unit Logger.NullHandler;
interface
uses
Classes,
SysUtils,
Logger.HandlerInterface;
type
NullHandler = class(TObject, LoggingHandlerInterface)
Public
constructor Create();
destructor Destroy();
function Open(Identifier: UTF8String): boolean;
function Close(): boolean;
function Write(const LogData: UTF8String): boolean;
end;
implementation
constructor NullHandler.Create();
begin
inherited Create;
end;
destructor NullHandler.Destroy();
begin
inherited Destroy;
end;
function NullHandler.Open(Identifier: UTF8String) : boolean;
begin
Result := True;
end;
function NullHandler.Close(): boolean;
begin
Result := True;
end;
function NullHandler.Write(const LogData: UTF8String): boolean;
begin
Result := True;
end;
end.

View File

@ -11,7 +11,11 @@ uses
(Logger.HandlerInterface unit) (Logger.HandlerInterface unit)
to create your own. } to create your own. }
Logger.SysLogHandler, Logger.SysLogHandler,
// or Logger.StreamHandler, // or
Logger.StreamHandler,
Logger.ConsoleHandler,
Logger.FileHandler,
Logger.NullHandler,
//... other units; //... other units;
var var
@ -41,4 +45,4 @@ begin
Log.Free; Log.Free;
LogHandler.Free; LogHandler.Free;
end. end.
``` ```

View File

@ -43,19 +43,25 @@ uses
Renegade.Logger, Renegade.Logger,
Logger.SysLogHandler, Logger.SysLogHandler,
Logger.StreamHandler, Logger.StreamHandler,
Logger.FileHandler; Logger.FileHandler,
Logger.NullHandler,
Logger.ConsoleHandler;
var var
StreamLogHandler : StreamHandler; StreamLogHandler : StreamHandler;
Log: RTLogger; Log: RTLogger;
LogFileHandler : FileHandler; LogFileHandler : FileHandler;
MemoryStream : TMemoryStream; MemoryStream : TMemoryStream;
NullLogHandler : NullHandler;
ConsoleLogHandler : ConsoleHandler;
begin begin
//MemoryStream := TMemoryStream.Create; //MemoryStream := TMemoryStream.Create;
//StreamLogHandler := StreamHandler.Create('test.log'); //StreamLogHandler := StreamHandler.Create('test.log');
//StreamLogHandler := StreamHandler.Create(MemoryStream); //StreamLogHandler := StreamHandler.Create(MemoryStream);
LogFileHandler := FileHandler.Create('test.log'); //LogFileHandler := FileHandler.Create('test.log');
Log := RTLogger.Create(LogFileHandler); //NullLogHandler := NullHandler.Create;
ConsoleLogHandler := ConsoleHandler.Create;
Log := RTLogger.Create(ConsoleLogHandler);
Log.Info('Testing', ['File', True, 'Error', True, 'Extended', 'Extend']); Log.Info('Testing', ['File', True, 'Error', True, 'Extended', 'Extend']);
Log.Debug('Debugging', []); Log.Debug('Debugging', []);
Log.Error('Error', []); Log.Error('Error', []);