• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi写系统日志监控转

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

不久前写了个抓取网页内容的小程序,跑了一晚上,本以为早上起来都抓完了,谁知道程序死掉了,分析半天,才发现用tmemo来记录日志的信息太多了,越积越多,本来memo的容量就不大。对于无法控制信息量的日志来说,有可能造成崩溃。记得见过盒子上一个关于手机发短信的小程序,上面有个日志的写法不错。
方法:
1、每写一行日志,先判断memo的行数是否超过自己设定的行数,我一般设为1000行,这样保存的日志大小一般在64K左右
2、判断保存日志的目录是否存在,不存在就建 一个
3、用日期加时间取一个日志名,象这种2010-03-12_07-15-23-171.txt 。
4、判断这个文件是否存在,(因为有些监控信息出现很快,有可能瞬间就能到到自己设定的行数,这时保存会冲掉上次的日志),存在就再按现在的时间取个名字
5、保存日志,清除memo
上代码

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
mmo1: TMemo;
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure writelog(amemo: tmemo; mst: string);
var
mfile: string;
begin
//设定多少行进行保存,如果大于200行进行保存 不过默认一般用1000行,这样一个日志文件在64K左右
if amemo.Lines.Count > 200 then
begin
//判断保存日志文件的目录是否存在
if not DirectoryExists(ExtractFilePath(ParamStr(0)) + 'logdata') then
MkDir(ExtractFilePath(ParamStr(0)) + 'logdata');

//按日期及时间设定保存日志的文件名
mfile := ExtractFilePath(ParamStr(0)) + 'logdata\' + formatdatetime('yyyy-mm-dd_hh-mm-ss-zzz', now) + '.txt';
while fileexists(mfile) do //如果此时间名称日志文件存在,再按下一时间进行取名
begin
mfile := ExtractFilePath(ParamStr(0)) + 'logdata\' + formatdatetime('yyyy-mm-dd_hh-mm-ss-zzz', now) + '.txt';
end;
//保存日志,并清空memo
amemo.Lines.SaveToFile(mfile);
amemo.Clear;
end;
amemo.Lines.Add(formatdatetime('yy-mm-dd hh:mm:ss ', now) + '>>' + mst)
end;

procedure TForm1.btn1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 400 do
begin
writelog(mmo1, '日志信息' + inttostr(i));
end;
end;

end.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中函数参数中的const修饰符的本质以及注意事项发布时间:2022-07-18
下一篇:
[Delphi]转换Dialogic Vox文件为Wave文件发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap