Erlang - 入门之一日志系统如何打印输出使用lager框架

news2024/11/25 22:41:53

在合适的地方插入一句代码即可: 

lager:error("Some Message"),

就这样,谢谢阅读

。。。。。。。

。。。。。。。。。

。。。。。。。。。。。

。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。

没有什么比从直接“”拷贝“”代码的方法,能更快“”掌握“”代码

下面都只是很无聊的“”程序开发“”,要是你懂ErLang可不必往下看;要是你不懂往下看了也不会懂

问题零:字串的拼接

这里没有lager的原理,也没有errlang的原理,因为毕竟哥不懂服务器

但是如果你和哥的情况一样:有一个项目,能编译,能运行,但就是想改亿点点逻辑,那么你确实需要打印输出

%一开始我参考了这段代码
?ERROR("node_kf start ~p port=~p",[Ip,Port]),

所以写上 "~p"  相当于 format 字串了

%% 所以把一段打印代码改成。。。。。。
%% 当然,前面你需要先引入lager:-include("xxxxx.hrl").
start([NodeId]) ->
    Ip = config:get_server_ip(),
    Port = config:get_server_port(),
   % lager:error("node_kf Start() ip===="),
    lager:error("node_kf Start() ip====nodeid=~p",[NodeId]),

打印最终输出

[error] <0.112.0>@node_kf:start:21 node_kf Start() ip====nodeid=100

又因为另外一段代码,我们知道了

SqlFmt = <<"REPLACE INTO `base_node_kf` (`node_id`, `node`, `cookie`, `ip`, `time`) VALUES (~p, '~s', '~s', '~s', ~p)">>,
~s字串
~p数字

问题一:Lager未定义

一开始在 preload() 插入这句代码

会提示 undefine Lager ["Some Message"]

最终,插入前后如下

%% @doc 启动游戏
start() ->
    preload_codes(),
    start_apps(?APPS),
    lager:error("Some Message"),%插入一句
    ok.

本来不想做什么全栈工程师

由于突然好像有2个项目都是使用Erlang作为服务器

所以年底了还是随便学习一下,golang比较火,skynet上升期,erlang老而不倒

(2022.)以上成熟三大服务器架构应该是肯定的 ,老稳了

掌握了c++,golang,skynet,erlang等3种语言及以上的老哥才能算是全栈六边形战士,

哥并不是什么全栈,就浅浅地说下一些“”概念“(小学生)

当你要使用一个功能,或调用一个api,最简单的方法可能是:

0)知道自己在干啥(可能并没有可视化,基础软件一点不直观)

1)有一个已经稳定开发的环境(源码)

2)一个lager日志库(lib),并引入

3)调用它

4)灵活地封装它

%一旦你用lager构建了你的代码并启动了lager应用程序,你就可以通过以下操作来生成日志消息:

%lager:error("Some message")

问题二:

某个项目的封装

?ERROR("start_client(~p) error !~nType:~p, Error:~p", [Sock, Type, Error])

问题三:

在配置写了console输出,实际并不能

#Lager's console backend is incompatible with the 'old' shell, not enabling it

其他参考日志 lager 文章:

解析Erlang日志组件lager的监督树和模块 - 程序员大本营

Lager使用说明_mt4836的博客-CSDN博客_erlang lager

Erlang Behaviour行为模式之一:Supervisor之说明_自不凡的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web前端网页课程设计大作业 html+css+javascript天津旅游(11页) dw静态旅游网页设计实例 企业网站制作

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

草料二维码如何在多行业实现管理和自动化工作

二维码&#xff0c;在我们的日常生活中随处可见&#xff0c;不管是我们常用的微信支付&#xff0c;还是日常出入的场所码&#xff0c;已经渗透在我们生活的点点滴滴中。 如果我们自己也希望通过二维码&#xff0c;来传达文字、数据等信息&#xff0c;那么很多人都肯定给你推荐…

NS3笔记

NS3笔记1 Docker环境配置1.1 Docker安装1.2 镜像安装1.3 安装其他软件1.4 安装ns31 Docker环境配置 1.1 Docker安装 俺是macOS&#xff0c;直接参考这个网址。 1.2 镜像安装 俺打算安装Ubuntu18.04&#xff0c;镜像版本可以Ubuntu 镜像库 # 拉取镜像 docker pull ubuntu:18…

深入理解可升级智能合约

准备 为了理解可升级合约&#xff0c;必须理解proxy机制&#xff0c;要理解proxy机制&#xff0c;必须理解solidity的sstore和sload,以及关于以太坊架构和存储结构&#xff08;数据结构&#xff09;。 关于Solidity中的sstore和sload深入理解&#xff1a; 非常好的一篇剖析&…

SAP ABAP 散装笔记20220825

SAP ABAP 散装笔记20220825 引言&#xff1a; 散装笔记的标题系列中记录了我常用、备忘、易错的知识点。 关键字&#xff1a;SAP ABAP 散装笔记 知识点 文章目录SAP ABAP 散装笔记202208251. 获取域值和域值描述的两种方式2. 打开新的会话窗口&#xff08;并执行可能的事务码…

西妥昔单抗丨艾美捷西妥昔单抗Cetuximab方案

西妥昔单抗Cetuximab是针对人表皮生长因子受体的一种单克隆抗体&#xff0c;主要作用就是与表皮生长因子受体结合&#xff0c;阻断表皮生长因子受体与其它配体的结合而达到抗肿瘤的目的。各种恶性肿瘤细胞&#xff0c;例如直肠癌细胞、胃癌细胞&#xff0c;表面都高表达表皮生长…

WebStorm pull(拉取)项目commit(提交)、push(推送)代码

1.打开WebStrom&#xff0c;找到Git---克隆... 2.输入需要克隆的项目地址&#xff0c;将其项目克隆下来 3.pull&#xff08;拉取&#xff09;、commit&#xff08;提交&#xff09;、push&#xff08;推送&#xff09; 4.在你本地新建一个和你git分支一样名字的分支 5.改完代码…

Eslint

1. 配置文件 配置文件由很多种写法&#xff1a; .eslintrc.*&#xff1a;新建文件&#xff0c;位于项目根目录 .eslintrc.eslintrc.js.eslintrc.json区别在于配置格式不一样package.json 中 eslintConfig&#xff1a;不需要创建文件&#xff0c;在原有文件基础上写。 2. 具体…

什么是Python?Python有什么特性?

什么是Python&#xff0c;相信第一次接触Python的同学会有一些疑问。我们通过百度百科得到Python的定义为&#xff1a;   Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本&#xff…

UDS入门至精通系列:诊断时间参数

文章目录 前言一、诊断时间参数 P2二、诊断时间参数 P2*三、诊断时间参数 S3四、上述参数在应用中的汇总总结前言 在职场中,对于自己领导吩咐的事情,事事有响应,是你在领导面前彰显自己能力的机会。并且这其中的响应时间就是你职业能力的时刻。 同样在汽车电子诊断领域,因…

忆享科技受邀亮相CIS2022网络安全创新大会

12月14日&#xff0c;忆享科技受邀亮相第八届网络安全创新大会&#xff08;简称“CIS”&#xff09;多维时空专场&#xff0c;与行业内资深专家及众多头部企业交流对话&#xff0c;深度了解网络安全行业新理念、新技术、新思路和新实践&#xff0c;共同探讨行业技术创新与突破。…

Java+Swing实现的五子棋游戏

JavaSwing实现的五子棋游戏一、系统介绍二、功能展示1.游戏展示三、系统实现1.ChessFrame .java四、其它1.其他系统实现2.获取源码一、系统介绍 五子棋游戏实现人机对战、人人对战两个模式。 二、功能展示 1.游戏展示 三、系统实现 1.ChessFrame .java package five;impor…

【图像处理】图像拼接原理介绍

问题 图像拼接是图像处理的基础之一&#xff0c;虽然自己并没有直接做图像拼接方面的研究&#xff0c;但在面试中却多次被问到这方面的内容&#xff0c;可见这个知识点还是很重要的。事实上&#xff0c;很多场景都会用到图像拼接的知识&#xff0c;例如运动检测与跟踪、游戏画…

HJL-E6/A DC220V数字式【电流继电器】

1&#xff0e;用途 HJL系列数字式交流电流继电器为瞬时动作特性&#xff0c;用于发电机&#xff0c;变压器和输电线路的过负荷和短路保护&#xff0c;作为启动元件。 2&#xff0e;安装结构 导轨安装9&#xff0c;导轨安装E 两种壳体尺寸&#xff0c;具体尺寸请参考外型尺寸…

Spark 3.0 - 12.ML GBDT 梯度提升树理论与实战

目录 一.引言 二.GBDT 理论 1.集成学习 2.分类 & 回归问题 3.梯度提升 4.GBDT 生成 三.GBDT 实战 1.数据准备 2.构建 GBDT Pipeline 3.预测与评估 四.总结 一.引言 关于决策树前面已经介绍了常规决策树与随机森林两种类型的知识&#xff0c;本文主要介绍梯度提…

小游戏赛道如何加速流量增长?

小游戏是指设计极简的轻量级游戏。它构造简单&#xff0c;但却给人带来了娱乐性和重复参与的欲望。 近年来&#xff0c;小游戏在抖音、微信小游戏等平台拥有着疯狂裂变的可能性&#xff0c;出现了例如“羊了个羊”“跳一跳”、“合成大西瓜”等风靡一时的小游戏。 这些爆火的小…

「微服务系列」统一网关Gateway

为什么需要网关 网关功能&#xff1a; 身份认证和权限校验服务路由、负载均衡请求限流在SpringCloud中网关的实现包括两种&#xff1a; Zuul&#xff1a;基于Servlet的实现&#xff0c;属于阻塞式编程。SpringCloudGateway&#xff1a;是基于Spring5中提供的WebFlux&#xf…

关注渐冻症|菌群助力探索其发病机理及相关干预措施

最杰出的物理学家之一的斯蒂芬威廉霍金想必大家都知道&#xff0c;以及曾经风靡全网的“冰桶挑战”&#xff0c;它们都与一种罕见疾病有关&#xff0c;那就是渐冻症。 媒体的宣传让渐冻症成为了较为“知名”罕见病之一&#xff1b;2000年丹麦举行的国际病友大会上正式确定6月21…

【Redis】数据类型操作二 (Set/Hash/Zset)

文章目录3、Redis集合(Set)4、 Redis哈希(Hash)5、Redis有序集合Zset(sorted set)实操3、Redis集合(Set)4、 Redis哈希(Hash)5、Redis有序集合Zset(sorted set)3、Redis集合(Set) Redis Set 是String类型的无序集合。一个key集合可以对应多个value元素。Redis Set 可以自动排重…

[附源码]Python计算机毕业设计高校篮球训练管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…