Log Fonksiyon Kütüphanesi Oluşturma

Log Fonksiyon Kütüphanesi Oluşturma

Selamlar,
Basit iki farklı log oluşturabilecek fonksiyon tanıtacağım. Biri text tabanlı diğeri ise veritabanına kaydedebileceğiniz iki farklı fonksiyon.

Text Tabanlı

library LogFunc;
 
{Author: HyperXMan }
 
uses
 System.SysUtils,
 System.Classes,
 Winapi.Windows;
{$R *.res}
 
 
Procedure Log(SLog: String);
var
StringL: TStringList;
buf: array[0..260] of char;
Yol: String;
begin
GetModuleFileName(HInstance, buf, Length(buf));
Yol := StringReplace(buf, '\LogFunc.dll', Trim(''), [rfReplaceAll, rfIgnoreCase]);
 
if FileExists(Yol+'\db.log') then
begin
  StringL := TStringList.Create;
  StringL.LoadFromFile(Yol+'\db.log');
  StringL.Add('['+DateToStr(Date)+' '+TimeToStr(Time)+']: '+SLog);
  StringL.SaveToFile(Yol+'\db.log');
end
else
begin
  StringL := TStringList.Create;
  StringL.Add('['+DateToStr(Date)+' '+TimeToStr(Time)+']: '+SLog);
  StringL.SaveToFile(Yol+'\db.log');
end;
end;
 
Exports Log;
 
begin

Veritabanı Tabanlı

library FuncLog;
 
{Author: HyperXMan }
 
uses
 System.SysUtils,
 System.Classes,
 Winapi.Windows,
 Uni, SQLServerUniProvider;
{$R *.res}
 
 
Procedure Log(SLog, CString, TAdi: String);
var
Baglanti: TUniConnection;
Query: TUniQuery;
Provider: TSQLServerUniProvider;
begin
Provider := TSQLServerUniProvider.Create(nil);
 
Baglanti := TUniConnection.Create(nil);
Baglanti.ConnectString := CString;
Baglanti.Connected := True;
 
 
Query := TUniQuery.Create(nil);
 
Query.Connection := Baglanti;
//Query.SQL.Text := 'select * from '+TAdi;
//Query.Active := True;
 
Query.SQL.Text := 'insert into '+TAdi+' (Date, Comment) VALUES(:ADate, :Comment)'; //A koymamın sebebi :+D şeklini emoji algılayıp hata çıkması kullanımda A harfini siliniz.
Query.ParamByName('Date').AsDateTime := Now;
Query.ParamByName('Comment').AsString := SLog;
Query.ExecSQL;
end;
 
Exports Log;
 
begin
end.

SLog: Log açıklaması
CString: Connection tanımınız.
TAdi: Tablo adınız.

Not: Tabloda Date ve Comment türünde iki farklı kolon açmalısınız değiştirmek isterseniz fonksiyon üzerinden değiştirebilirsiniz.

Örnek Kullanım(SQL Server):

Log('Deneme Log Kaydı!', 'Provider Name=SQL Server;Data Source=DESKTOP-7U6ETIN;Initial Catalog=hyper_emlak;Port=0;User ID=sa;Password=hyperdbpassword', 'Log');

Projenin Github Linki için Tıklayınız

Uyarı: Memory Leak almamak için lütfen işlem sonunda Free, FreeAndNil veya Destroy fonksiyonlarını ekleyin/kullanın

İyi çalışmalar.


Share Tweet Send
0 Comments
Loading...