Delphi的日志库
1. 安装
Log4D下载:
LoggerPro下载
特点:
log4d简单易用、性能稳定
LoggerPro貌似功能很强大,只是没有详细的文档,懒得翻源码
安装步骤
Log4D是开源的,所以可以进行重新编译,,解压到文件夹。打开文件夹"...\log4delphi-0.8",新建一个文件夹"build";编译的时候可能出现个错误提示TFileUnit不存在直接将他删除重新编译即可!
导入Delphi:Tool-->Options-->Environment Options--->Delphi Options--Library-->Library path
2. 使用
载入配置文件
菜单--->Project-->View Source
uses
Vcl.Forms,
TConfiguratorUnit, {需要引用该单元}
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
doPropertiesConfiguration('log4delphi.properties'); { 初始化,读取属性 }
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
使用
unit Unit1;
interface
//TLoggerUnit需要引入该单元
uses
TLoggerUnit, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
TLogger.GetInstance.Debug('按钮1被点了'); {获取TLogger实例}
end;
end.
3. 配置文件(log4delphi.properties)
# 控制输出的信息类别
log4delphi.rootLogger=DEBUG,fileAppender
#单个文件
log4delphi.appender.fileAppender=TFileAppender
#从代码中得出多个文件保存日志。单个文件的最大尺寸使用MaxFileSize设置,文件个数使用MaxBackupIndex设置。
log4delphi.appender.fileAppender=TRollingFileAppender
log4delphi.appender.fileAppender.MaxBackupIndex=20
log4delphi.appender.fileAppender.MaxFileSize=3M
#文件编码,否则日志文件内容会乱码
log4j.appender.A1.Encoding=UTF-8
#文件名称
log4delphi.appender.fileAppender.File=app.log
#exe所在目录
log4delphi.appender.fileAppender.AppDir=true
#追加方式
log4delphi.appender.fileAppender.Append=true
#设置Layout
log4delphi.appender.fileAppender.layout=TPatternLayout
#输出格式
log4delphi.appender.fileAppender.layout.Pattern=%d{yyyy-mm-dd hh:nn:ss:zzz} [%5p] [%L] [%e] %m%n
备注:
配合Linux的tail -f 日志文件名称 使用更丝滑
%d 输出时间 {}中的内容为时间的格式
%5p Level信息
%L Logger的名称例如上面的rootLogger 他输出 ROOT
%e except信息
%m 消息
%n 换行
Delphi的日志库的更多相关文章
- 爆料喽!!!开源日志库Logger的剖析分析
导读 Logger类提供了多种方法来处理日志活动.上一篇介绍了开源日志库Logger的使用,今天我主要来分析Logger实现的原理. 库的整体架构图 详细剖析 我们从使用的角度来对Logger库抽茧剥 ...
- 爆料喽!!!开源日志库Logger的使用秘籍
日志对于开发来说是非常重要的,不管是调试数据查看.bug问题追踪定位.数据信息收集统计,日常工作运行维护等等,都大量的使用到.今天介绍著名开源日志库Logger的使用,库的地址:https://git ...
- zw版【转发·台湾nvp系列Delphi例程】Delphi 使用 HALCON库件COM控件数据格式转换
zw版[转发·台湾nvp系列Delphi例程]Delphi 使用 HALCON库件COM控件数据格式转换 Delphi 使用 HALCON库件COM控件数据格式转换,与IHObjectX接口有关 va ...
- 新写的c++日志库:log4K
网是开源的c/c++日志库也不少,但用起来总觉得不方便,于是动手写了一个C++日志框架Log4K. 测试代码: #include "log4k.h" #pragma comment ...
- 开源日志库log4cplus+VS2008使用
一.简介 log4cplus是C++编写的开源的日志系统,功能非常全面.本文介绍如何在Windows+VS2008中使用该日志库. 二.下载 可从网站[url]http://log ...
- 这可能是php世界中最好的日志库——monolog
由于一些历史原因,php中并没有内建的日志接口,故长期以来也没一个功能完备并且应用广泛的日志库.在我的工作生涯中,如果系统需要记录一些应用日志的话,基本上就是封装一个日志类,然后把一些要记录的字段写入 ...
- C++线程安全日志库-Win32接口实现
分享一个C++日志库,使用Win32接口编写,而且是线程安全的日志库.比较简单,只有2个文件,容易上手,使用起来也很简单 头文件 如下是日志库的头文件,接口看似很多,但是使用起来最常用的也就那么几个 ...
- 日志服务Python消费组实战(三):实时跨域监测多日志库数据
解决问题 使用日志服务进行数据处理与传递的过程中,你是否遇到如下监测场景不能很好的解决: 特定数据上传到日志服务中需要检查数据内的异常情况,而没有现成监控工具? 需要检索数据里面的关键字,但数据没有建 ...
- glog日志库使用笔记
日志能方便地诊断程序原因.统计程序运行数据,是大型软件系统必不可少的组件之一.glog 是google的开源日志系统,相比较log4系列的日志系统,它更加轻巧灵活. 在Github上下载glog,解压 ...
随机推荐
- LinkedHashMap+Spring Aop实现简易的缓存系统
之前介绍说要做在线文库的系统,当数据量大的时候,根据标签tag的对文档信息的查询将是一个很耗时的工作,原来分析LinkedHashMap源码的时候了解到它有一个双向链表的结构,可以通过将刚被访问的元素 ...
- nginx 知识
nginx如何实现高并发? 启动nginx服务器后,输入 ps -ef |grep nginx,会发现nginx有一个master进程 和若干个worker进程, 这些worker进程是平等的,都是被 ...
- linux 系统优化,调优
1.系统安装前的规则 a.分区:不同环境不同分法,按自己的需求来 以硬盘500G为例 /boot 100M-200M(只存放grub和启动相关文件,不存放其他) / 80G-100G (因为很多人默 ...
- RabbitMQ学习第二记:工作队列的两种分发方式,轮询分发(Round-robin)和 公平分发(Fair dispatch)
1.什么是RabbitMQ工作队列 我们在应用程序使用消息系统时,一般情况下生产者往队列里插入数据时速度是比较快的,但是消费者消费数据往往涉及到一些业务逻辑处理导致速度跟不上生产者生产数据.因此如果一 ...
- linux 服务器安装php5.6
查看原有的php版本:php -v 如果已经装了低版本的php,为了避免冲突,查看: yum list installed | grep php 删除:自行百度吧.可能不能一次性全部删除,只能一个一个 ...
- leetcode-220-存在重复元素③*
题目描述: 方法一:二叉搜索树+滑动窗口 方法二:桶排序 O(N) class Solution: def containsNearbyAlmostDuplicate(self, nums: List ...
- JS函数进阶
函数的定义方式 函数声明 函数表达式 new Function 函数声明 function foo () { } 函数表达式 var foo = function () { } 函数声明与函数 ...
- MyEclipse搭建Structs2开发环境
MyEclipse10搭建Strust2开发环境 - 孤傲苍狼 - 博客园https://www.cnblogs.com/xdp-gacl/p/3496242.html
- MailHelper
using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Co ...
- [kuangbin带你飞]专题一 简单搜索 - C - Catch That Cow
#include<iostream> #include<cstdio> #include<string> #include<vector> #inclu ...