Log4Erl 使用小记

文档解析技术:OCR与视觉语言模型对比与应用 文档解析技术是信息提取和数字化的核心工具,广泛应用于金融、医疗和法律等领域。传统OCR(光学字符识别)系统通过多阶段处理流水线实现文本检测与识别,但在处理非结构化或复杂版式文档时准确率受限。相比之下,基于Transformer架构的视觉语言模型(VLMs)如Donut和Pix2Struct,通过端到端的方式结合视觉与语义理解,显著提升了字段识别准确率和版式适应性。VLMs的上下文推理能力使其在模糊文本识别和语义关联任务中表现优异,尤其在医疗处方和法律文书等场景中优势明显。工程实践中,混合部署方案结合了OCR 阅读详情

from:http://www.hezhiqiang.info/articles/84/log4erl-a-port-of-java-log4j
功能

支持多日志
当前文件Appender仅支持基于大小的日志文件滚动
支持默认Logger,未指定Logger时系统提供默认Logger
5个预定义的日志级别(debug, info, warn, error, fatal)
一个error_logger的日志处理器
支持用户指定日志级别
支持日志格式化
支持控制台日志
支持smtp formatter
支持XML格式的日志
支持syslog
支持在运行时改变Appender的格式和级别.

Step1. Checkout from repository

你可以从 Google code 或者 Github上获取Log4erl的源代码, Google code上的代码已经旧了,建议从Github上clone 代码

git clone git://github.com/ahmednawras/log4erl.git log4erl

Step2. Compile

如图4, 进入Log4erl源代码目录src执行:

make:all([{outdir, "../ebin"}]).

Step3. 安装

你要让Erlang能够找到Log4erl,两种方式

1. 把整个Log4erl目录复制到$ERLANG_HOME/lib目录下面.看上面第三张图.
2. 命令行指定

erl -pz /path/to/log4erl

Step4. 使用

application:start(log4erl).

创建配置文件并调用log4erl:conf(file)初始化

log4erl:conf(“priv/log4erl.conf”).

同样你可以用编程的方式对Log4erl进行配置

log4erl:add_logger(messages_log).
log4erl:add_console_appender(messages_log, cmd_logs, {warn, “[%L] %l%n”}).

好了,现在可以使用它了.

log4erl:info(“Information message”).

关于Log4erl的详细信息请查阅源代码根目录中的 Readme.txt, API.txt, Appenders_API.txt, CONFIGURATION.txt 文件.
Log4erl配置文件格式

logger [] {
…
}

指定了Logger的名称,你可以去任意你喜欢的名字.如果不指定任何名字,那么log4erl将把它作为默认的Logger使用,例如:

%% default logger
logger {
…
}

在一个Logger中,可以有一到多个Appender,例如

%% Default logger
%% it includes a file appender and a console appender
logger{
file_appender app2{
dir = “.”,
level = info,
file = my_app,
type = size,
max = 100000,
suffix = log,
rotation = 5,
format = ‘[%L] %I %l%n’
}
console_appender app1{
level = warn,
format = ‘%T %j [%L] %l%n’
}
}

Appender的配置格式如下

{
…
}

在Appender中你可以用’property=value’的格式来设置Appender的属性,属性剑以’,‘逗号分隔.每种Appender有不同的属性集合.

公共属性:
level = => 日志级别 (例如: warn)
format = => 输出格式 (查看 ‘Appenders.txt’)

file_appender

dir => 输出路径 (例如: /var/log/my_app)
file => 日志文件名称 (例如: my_app_log)
type => size,time. 当前仅实现了基于size的日志滚动
max => 每次日志滚动的最大文件大小
suffix => 日志文件后缀 (例如: log)
rotation => 循环滚动次数,例如为5, 当滚动到第五个日志文件并且日志文件达到指定size的时候就会覆盖前面的日志文件,依次循环

smtp_appender

ip => SMTP服务器IP地址
port => SMTP服务器端口
no_auth
username => 用户名
password => 密码
from => 寄信人地址
to => 收信人地址
tilte => 邮件标题
msg => 邮件内容

syslog_appender

facility => Facility (例如: ftp)
host => 发送syslog消息的目标主机 [可选]
port => syslog 端口[可选]

erlang日志应用log4erl(非sasl) 用不惯sasl的,可以用log4xxx的erlang版,log4erl。 log4erl Manual: =============== TOC: ==== 1. Features 2. Installation 3. Usage 4. API 5. Configuration 6. Known issues 7. Future development 8. License 1. FEATURES: ============ - Multiple logs - Currently, only size-based log rotation of files for file appender - Support default logger if no logger specified - 5 predifined log levels (debug, info, warn, error, fatal) - A log handler for error_logger - Support for user-specified log levels - Support for a log formatter (similar to Layouts in Log4J) - Support for console log - Support for smtp formatter - Support for XML logs - Support for syslog - Support for changing format and level of appender during run-time 2. INSTALLATION: ================ To compile & install log4erl, download source from google code's website (http://code.google.com/p/log4erl/) or from svn: $> svn checkout http://log4erl.googlecode.com/svn/trunk/ log4erl or from github public repository (http://github.com/ahmednawras/log4erl/). $> cd log4erl $> make or you can run the below from erlang shell: $> cd src $> erl 1> make:all([{outdir, "../ebin"}]). 3. USAGE: ========= 1- In order to use log4erl, you need to first include it in the path. There are 2 ways to do this: a) include the "log4erl" directory in erlang's "lib" directory in the target machine (cp -Rf log4erl /where/erlang/is/lib). $> cp -Rf log4erl /usr/local/lib/erlang/lib/ b) include the "log4erl" ebin directory in the path when running you program $> erl -pz /path/to/log4erl ... 2- Once the log4erl directory is included, you can use its API as described in section "API". but before, you need to run: > application:start(log4erl). 3- Create a configuration file and load it using log4erl:conf(File) > log4erl:conf("priv/log4erl.conf"). 4- Alternatevly, you can create loggers & add appenders to them programmatically as appropriate. You can do this as per the API below. > log4erl:add_logger(messages_log). > log4erl:add_console_appender(messages_log, cmd_logs, {warn, "[%L] %l%n"}). where Conf is the erlang term describing how the log is to be handled You can also add more types of appenders, which is explained in API.txt and Appneders_API.txt. 5- Now, you can log whatever messages you like as per logging functions described in API. > log4erl:info("Information message"). Precedance of log levels are: all = debug < info < warn < error < fatal < none User defined levels are always written except when none level is specified in the logger specification (See below). 4. API: ======= Please look at API.txt file for more information about the API. 5. CONFIGURATION: ================= Please look at CONFIGURATION.txt for more information about how to configure log4erl. 6. KNOWN ISSUES: ================ - Name of both loggers & appenders should be unique and not registered since log4erl will try and register their names. If the name is already registered, nothing will happen. This will be fixed soon. - If you run change_log_format/1,2 and appender crashed, a restart from the supervisor will not record the latest format used. It will only use either the default format or the format used in the argument is supplied. 7. FUTURE DEVELOPMENT: ====================== - Add support for different log persistance methods (e.g files, XML, console, DB, SNMP, syslog...etc) - Add support for time-based log rotation - Multiple configuration format (Erlang terms, XML?, properties files?) - Add support for NDC & MDC ??? Please send your suggestion to ahmed.nawras <at @ at> gmail <dot . dot> com 8. LICENSE: =========== This software is subject to "Mozilla Public License 1.1". You can find the license terms in the file 'LICENSE.txt' shipping along with the source code. You may also get a copy of the license term from the URL: "http://www.mozilla.org/MPL/MPL-1.1.html". 立即下载

相关推荐

log4erl-0.9.0

log4erl-0.9.0 erlang log log4erl

Log4 日志级别

日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。:  1.static Level DEBUG :  DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。  2.static Level INFO  INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。  3.static Level WARN  WARN

u014704496的专栏 547

LabVIEW多设备采集实战:1个程序同时控制3个RS485 Modbus仪表

本文详细介绍了如何使用LabVIEW实现多设备RS485 Modbus同步采集,涵盖硬件架构设计、多线程通信框架搭建、数据帧解析技巧及性能优化策略。通过实际项目案例,展示如何解决端口冲突、数据解析错误等工业自动化常见问题,提升采集系统实时性与可靠性。

qsc901234的博客 300

[Erlang 0030] 理解Erlang/OTP Supervisor

Supervisors are used to build an hierarchical process structure called a supervision tree, a nice way to structure a fault tolerant application.                                                       

坚强2002@优快云 1145

基于YOLOv8的玉米病害监测系统

本研究的主要目标是设计并实现一个基于深度学习的玉米病害识别系统,通过采用YOLOv8算法进行玉米叶片病害的自动化识别。研究首先对玉米病害的种类和特点进行了分析,选择了具有代表性的病害类型,如玉米锈病、灰叶斑病、枯叶病和健康叶片,以构建一个多类别的分类问题。数据集的构建和处理是研究的关键部分,通过数据增强、图像标注等手段确保了数据的多样性和丰富性,从而提高了模型的泛化能力。

yupan__的博客 496

“开宝五子棋陪练”-首款开放智能的五子棋习题练习安卓应用

使用Kotlin语言以及Jetpack Compose UI库开发,主要就是写Composable函数,显示棋盘、棋子和一些按钮,响应用户的点击和滑动操作,以及保存和恢复数据。但我针对本应用是用于做题的特殊需求,对该算法库做了一个简单的JNI层封装,方便UI前端Kotlin代码的调用。

weixin_44120030的博客 2396

erlang log4erl日志记录

log4erl是一个application,所以要使用必须先启动才行,log4erl做为application启动后会运行一个gen_server类型的模块接收记录日志请求,该模块最终调用一个gen_event的模块异步写日志。           下载:http://code.google.com/p/log4erl/           直接解压文件,通过命令行进入源文件目录编译启动。

剪裁人生 的专栏 3015

开源数显表

开源数显表,广泛应用于车床、铣床、磨床、镗床、火花机、线切割等。市面上此类液晶数显表多数都是基于此项目。 一、基本配置 硬件 主控:STM32F407VGT6 LCD:群创AT070TN92 显示驱动:RA8875 光栅尺:3 x 输入(X/Y/Z) 串口:1 x MAX3232 继电器:2 x 输出 存储:AT24C64 模拟输入:LM324C 电源:AC 220V 软件 工程版本:Keil 5 STM32库:V1.4.0 图形界面:uCGUI 多语言支持:中文、英文 二、项目文

m0_70934529的博客 435

Erlang log4erl使用

下载log4erl https://github.com/ahmednawras/log4erl 我是使用README.txt上的svn下载的 $> svn checkout http://log4erl.googlecode.com/svn/trunk/ log4erl $> cd log4erl $> make 编译成功。 新建一个测试项目test 新建modu...

amornio 368

别再手动找触点了!EPLAN线圈触点映像的3种显示方式与F键/Ctrl+B快捷键实战

本文详细解析EPLAN线圈触点映像的3种显示方式与F键/Ctrl+B快捷键实战技巧,帮助电气设计工程师提升图纸操作效率。通过精简编号、路径栏显示和元件旁可视化三种模式的应用场景对比,结合快捷键肌肉记忆训练法,实现触点快速定位与管理,大幅减少手动查找时间。

weixin_42522964的博客 481

谷歌DreamFusion使用方法及实例详解

DreamFusion 是谷歌提出的基于文本生成3D模型的突破性技术,无需3D训练数据,通过2D扩散模型(如Imagen)与NeRF(神经辐射场)结合实现。以下为使用社区开源实现(如。)的详细步骤及实例。

主攻大数据 人工智能 物联网 安全 低空经济等方向。mtsc 、gtest特邀分享嘉宾 1042

log4erl输出error_logger

一:写在之前 接收的代码竟然不能直接输出异常,这个在调试上面不能忍啊。 项目用的log4erl,快上线了,也不能大刀阔斧的修改为lager,就研究了下如何让log4erl输出 error_logger 二:实现 首先要明白error_logger 是怎么输出出来的 erlang 启动sasl会启动一个叫做error_logger的 gen_event ,这

taitoubiyan1的专栏 1101

PON架构(全光网络)

目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网 无线网 全光网络方案场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网) 单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用1

qq_56248592的博客 6269

log4erl

转载于:https://www.cnblogs.com/lujingwei002/archive/2010/07/26/1785519.html

weixin_30951389的博客 135

034、MLCA 多尺度局部上下文注意力的 YOLOv11 适配:轻量级金字塔式空间上下文聚合

本文介绍了一种将多尺度局部上下文注意力(MLCA)模块集成到YOLOv11模型中的方法,以解决小目标检测中空间信息丢失的问题。MLCA采用金字塔式局部上下文聚合策略,通过不重叠的网格划分实现轻量级空间注意力计算,相比全局注意力机制能更好地保留小目标特征。 作者详细记录了实现过程,包括模块定义、参数调优和训练技巧,特别指出避免使用BN而改用GroupNorm以提升训练稳定性。在VisDrone数据集上的实验表明,MLCA-YOLOv11在参数量和计算量基本不变的情况下,mAP提升2.5%,其中行人检测提升3.

sundong_81的博客 279

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

erlang的错误日志

错误日志 OTP系统已经内置了一个可定制的错误日志模块。我们可以从三种不同的视角来看错误日志。程序员的视角关注代码中要记录一个错误日志的函数调用?配置的视角关注错误日志如何存储以及保存在哪里?报告的视角则关心错误发生之后,如何进行分析。我们将逐条讲述这些内容。 记录一个错误日志 在程序员的视角,错误日志的API很简单,下面是这些API的一部分: @spec error_logg

gavin的专栏 7833

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

用log4erl怎么获取 error_logger捕获到的OTP系统的错误信息?

<br />log4erl是一个在Erlang下很好的处理log的tools。可是,一些系统崩溃的error_msg不能用log4erl直接捕捉。因为OTP系统默认的error处理是给error_logger的。 <br /><br /> 可是系统崩溃的log对于debug和improve来说至关重要。一开始,我是一面用log4erl,一面用error_logger:logfile({open, FileName})来分别记录我自己定义的log和捕捉系统崩溃时的log。 <br /><br /> 之

witeman的专栏 1266

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

理解Erlang/OTP Supervisor

http://www.cnblogs.com/me-sa/archive/2012/01/10/erlang0030.html Supervisors are used to build an hierarchical process structure called a supervision tree, a nice way to structure a fault tolerant app...

weixin_30485379的博客 250

lager的使用

haogongju、人人IT网、59n南龙、360doc不要抄我的烂博客了,私人备忘用。 erlang本身提供了日志管理,但这与其它语言中常见的log4xxx的日志框架很不同: 日志文件是二进制的,查看起来很不方便; 每条日志跨多行文本,也不方便查找和分析。 总之,这自带的日志系统让用惯log4xxx系列的人用起来很不习惯。后来陆续有log4erl这样的应用,lager算是后...

好记性不如烂博客 1280

理解Erlang/OTP - Application

1>application:start(log4erl). 我们就从这一行命令开始说起吧,回车之后可以把log4erl应用程序启动起来.Erlang/OTP中的能完成特定功能集合的组件被称为application.,application是Erlang代码和功能组织的形式之一([Erlang0015]ErlangOTP设计原则).application的设计目的是通过运行一个或者多个进程来完

风花雪月 奋斗-ing 1186

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 341

仿muduo实现高并发服务器——EchoServer完成

本文介绍了一个纯头文件实现的 Reactor 服务端骨架,核心结构从 Buffer(双下标缓冲区)出发,依次封装 Socket(RAII 封装 fd)、Channel(事件与回调绑定)、Poller(epoll 封装)、TimerTask/TimeWheel(秒级时间轮)、EventLoop(事件循环 + 任务队列 + eventfd 唤醒),并集成 LoopThread/Pool、Connection、Acceptor 与 TcpServer。通过 EchoServer 示例展示业务逻辑仅需绑定三个回调即

深入探究的博客 380

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 419

【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork

本文详解多进程TCP服务器的实现原理,从单进程并发瓶颈出发,通过fork分离连接接收与服务职责。重点解析文件描述符继承机制、僵尸进程问题及双重fork解决方案,最终构建高效、稳定的多进程服务器模型,并说明服务器重启时可能因端口未释放导致绑定失败的原因。

2402_87731470的博客 2382

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 318
上一篇: Erlang动态编译热替换
下一篇: Erlang监测系统CPU、内存、磁盘
jamesjun
博客等级 码龄19年 25粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值