2.2 代码块--delphi 写日志模块
//2.2 代码块--写日志
//调用例句如:LogMsg('FTP上传线程终止',False,true);
procedure LogMsg(AMsg: string; const blnIsErrorMsg: boolean = False; const BoolSaveToFile: Boolean = True);
var
strMsg: string;
begin
try
//FLogMemoCallFlag.Enter;
strMsg := AMsg;
if blnIsErrorMsg and (Pub_ProgramLog.IndexOfName(AMsg) = -1) then
Pub_ProgramLog.Add(AMsg +'=' + FormatDateTime('yyyy-mm-dd hh:nn:ss',Now) );
if blnIsErrorMsg then strMsg := '******' + strMsg + '******';
if Assigned(Pub_Memo) and (Pub_BlnShowLog) then
begin
if Pub_Memo.Lines.Count >= 500 then Pub_Memo.Lines.Clear;
Pub_Memo.Lines.Add(#13#10 + FormatDateTime('yyyy-mm-dd hh:nn:ss',Now) + ' -> ' + strMsg);
end;
finally
//FLogMemoCallFlag.Leave;
end;
if BoolSaveToFile then
begin
try
WriteLog(SlashSep(ExtractFilePath(Application.ExeName), 'PostContentRunLog\' + FormatDateTime('yyyy-mm-dd',Now) + '.Txt'),
FormatDateTime('hh:nn:ss',Now) + ':' + strMsg);
except
;
end;
end;
end;
function SlashSep(const Path, S: string): string;
begin
if (Trim(Path) = '') or (Trim(S) = '') then
Result := path + s
else begin
//检查"Path"字符串是否是以"\"结尾
if AnsiLastChar(Path)^ <> '\' then
Result := Path + '\' + s
else
Result := Path + s;
end
end;
function WriteLog(AFileName: string; ALogCont: string; const BoolOverride: Boolean = false): integer;
var
//TmpTextFile: TextFile;
FileFullName: string;
TmpStr: string;
TmpFullDir: string;
begin
result := -1;
try
TmpStr := ALogCont;
FileFullName := AFileName;
TmpFullDir := ExtractFilePath(FileFullName);
if not DirectoryExists(TmpFullDir) then
CreateDir(TmpFullDir);
try
AssignFile(Pub_LogTextFile, FileFullName);
if (not BoolOverride) and FileExists(FileFullName) then
Append(Pub_LogTextFile)
else begin
Rewrite(Pub_LogTextFile);
end;
try
Writeln(Pub_LogTextFile, trim(TmpStr));
finally
CloseFile(Pub_LogTextFile);
end;
result := 1;
except
result := -1;
end;
except
;
end;
end;
2.2 代码块--delphi 写日志模块的更多相关文章
- Delphi 写日志的类
unit uProgLog; interface uses Windows, SysUtils, SyncObjs; const C_LOG_LEVEL_TRACE = $; C_LOG_LEVEL_ ...
- C# 超高速高性能写日志 代码开源
1.需求 需求很简单,就是在C#开发中高速写日志.比如在高并发,高流量的地方需要写日志.我们知道程序在操作磁盘时是比较耗时的,所以我们把日志写到磁盘上会有一定的时间耗在上面,这些并不是我们想看到的. ...
- [转]C# 超高速高性能写日志 代码开源
1.需求 需求很简单,就是在C#开发中高速写日志.比如在高并发,高流量的地方需要写日志.我们知道程序在操作磁盘时是比较耗时的,所以我们把日志写到磁盘上会有一定的时间耗在上面,这些并不是我们想看到的 ...
- 写2个线程,一个打印1-52,一个打印A-Z,打印顺序是12A34B。。。(采用同步代码块和同步方法两种同步方法)
1.同步方法 package Synchronized; /************************************同步方法****************************** ...
- step by step 之餐饮管理系统四(日志模块实现)
三天前基本上把数据库表设计的文档写好,今天想到了一个问题,还要再加几个表,一个是log表,用来记录系统日志,另外再加几个字典表,一些需要配置的数据但又不好放在像xml文件里面的数据可以放在这些字典表里 ...
- Python logging(日志)模块
python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...
- 继承extends、super、this、方法重写overiding、final、代码块_DAY08
1:Math类的随机数(掌握) 类名调用静态方法. 包:java.lang 类:Math 方法:public static double random(): Java.lang包下的类是不用导包就可 ...
- java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序
转自:http://blog.csdn.net/mrzhoug/article/details/51581994 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普 ...
- Java 代码块
一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. 3.静态代码块: 用static{}包裹起来的代码片段,只会执 ...
随机推荐
- IOS- DocumentInteraction Controllerl的使用
iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller.此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件.而且,从4.2开始, ...
- [网络流24题]餐巾(cogs 461)
[问题描述] 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,-,N).餐厅可以从三种途径获得餐巾. (1)购买新的餐巾,每块需p分: (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分 ...
- android viewPager 切换页面时防止fragment重新加载
把限制页面数设置成应用一共的页面数就可以了 ViewPager.setOffscreenPageLimit(3);
- hdu3038(带权并查集)
题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=3038 题意: n表示有一个长度为n的数组, 接下来有m行形如x, y, d的输入, 表示 ...
- JavaScript基础——创建函数
JavaScript的最重要的一个部分是制作其他代码可以重用的代码.要做到这一点,你可以把代码组织成执行特定任务的函数.函数是结合在一个单一的块中,并给予一个名称的一系列代码语句.然后,你就可以通过引 ...
- CLR via C#(18)——Enum
1. Enum定义 枚举类型是经常用的一种“名称/值”的形式,例如: public enum FeedbackStatus { New, Processing, ...
- execl一个工作薄中有几个个工作表,将这几个个工作表分别保存到不同execl文件中
用宏运行: Sub QEJebel() Dim sh As Worksheet Dim Pa As String Pa = ThisWorkbook.Path For Each ...
- Server.MapPath查询路径那几件事
主要总结Server.MapPath 这个方法的使用以及使用的场景,不是什么时候都适合使用: 1.实现功能: Server.MapPath能够获取指定URL相对服务器的物理路径,在IIS服务端,能够根 ...
- Python多版本共存之pyenv
经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...
- 吐个槽,对VB6.0 还有VBS 说ByeBye
往事不堪回首,折腾了个把月的老系统,心中郁结,不吐不快.系统架构是ASP +VBS +VB6.0 + SQL Server2000, 第一个版本开发完成大概是在2000年.基本是处于交接无力,看代码就 ...