diff --git a/Logger.AbstractLogger.pp b/Logger.AbstractLogger.pp index 27b223d..9042db7 100644 --- a/Logger.AbstractLogger.pp +++ b/Logger.AbstractLogger.pp @@ -86,6 +86,8 @@ begin LOG_NOTICE: Result := 'Notice'; LOG_INFO: Result := 'Info'; LOG_DEBUG: Result := 'Debug'; + else + Result := 'Unkown'; end; end; diff --git a/Logger.FileHandler.pp b/Logger.FileHandler.pp new file mode 100644 index 0000000..8153e84 --- /dev/null +++ b/Logger.FileHandler.pp @@ -0,0 +1,79 @@ +{*******************************************************} + +{ 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 } +{ . } + +{*******************************************************} +{ _______ __ } +{ | _ .-----.-----.-----.-----.---.-.--| .-----. } +{ |. l | -__| | -__| _ | _ | _ | -__| } +{ |. _ |_____|__|__|_____|___ |___._|_____|_____| } +{ |: | | |_____| } +{ |::.|:. | } +{ `--- ---' } +{*******************************************************} +{$mode objfpc} +{$codepage utf8} +{$h+} +Unit Logger.FileHandler; + +interface + +Uses + Classes, + SysUtils, + Logger.HandlerInterface, + Logger.StreamHandler; + +Type FileHandler = class(StreamHandler, LoggingHandlerInterface) + Public + constructor Create( const FileName: UTF8String); + function Open(Identifier: UTF8String): boolean; + function Close(): boolean; + function Write(const LogData: UTF8String): boolean; +end; + +implementation + +constructor FileHandler.Create( const FileName: UTF8String); +begin + inherited Create(FileName); +end; + +function FileHandler.Open(Identifier: UTF8String): boolean; +begin + Result := inherited Open(Identifier); +end; + +function FileHandler.Close() : boolean; +begin + Result := inherited Close; +end; + +function FileHandler.Write(const LogData: UTF8String): boolean; +begin + Result := inherited Write(LogData); +end; + +End. + diff --git a/Renegade.Logger.pp b/Renegade.Logger.pp index 195f764..5703e32 100644 --- a/Renegade.Logger.pp +++ b/Renegade.Logger.pp @@ -83,7 +83,7 @@ begin except On e: Exception do begin - Destroy; + FreeAndNil(self); end; end; end; diff --git a/tests/LoggerTest.pp b/tests/LoggerTest.pp index 37d875d..b273f46 100644 --- a/tests/LoggerTest.pp +++ b/tests/LoggerTest.pp @@ -42,17 +42,20 @@ uses Classes, Renegade.Logger, Logger.SysLogHandler, - Logger.StreamHandler; + Logger.StreamHandler, + Logger.FileHandler; var StreamLogHandler : StreamHandler; Log: RTLogger; + LogFileHandler : FileHandler; MemoryStream : TMemoryStream; begin - MemoryStream := TMemoryStream.Create; + //MemoryStream := TMemoryStream.Create; //StreamLogHandler := StreamHandler.Create('test.log'); - StreamLogHandler := StreamHandler.Create(MemoryStream); - Log := RTLogger.Create(StreamLogHandler); + //StreamLogHandler := StreamHandler.Create(MemoryStream); + LogFileHandler := FileHandler.Create('test.log'); + Log := RTLogger.Create(LogFileHandler); Log.Info('Testing', ['File', True, 'Error', True, 'Extended', 'Extend']); Log.Debug('Debugging', []); Log.Error('Error', []);