- 博客(22)
- 收藏
- 关注
原创 Lager输出成html格式的日志
简介lager是erlang和exlir的一个日志库,输出格式支持自定义,可以通过额外插件扩展将日志输出成html格式,这样异常日志从颜色上就可以明显的看出来,方便调试使用库已经上传了hex库,可以通过以下3种方式中任一使用mix 中加入{:lager_html, "~> 0.0.1"}rebar.config 的deps 中加入 {lager_html, "0.0.1"}erlang.mk 中加入 dep_lager_html = hex 0.0.1如果hex下载失败,按照reba
2020-12-22 11:33:00 238
原创 rebar3使用本地依赖
简介erlang提供了rebar3来管理依赖和编译项目,结合git和hex,项目的依赖管理会非常简单。项目本体也会非常精简。但是也带来了问题就是项目本身必须依赖外网才可以构建,因为deps库一般都是从git或者hex上进行的下载。如果是内网环境下,就无法进行构建,只能提前将依赖在外网环境下下载完整再本地进行构建。同样如果网络环境比较差,国内连接hex的本站速度也比较慢,意味着每次构建都需要很久,因此如果能将依赖从本地进行拉取就会快很多。实现rebar3提供了插件功能,在有了插件功能后,就可以在不修改
2020-10-10 18:14:33 1092
原创 Mac安装解决erlang最新版本(23)安装失败的问题
编译安装mac最新的版本因为openssl的安全问题,不再默认链接openssl库,所以必须手动配置库,整体还是很折腾brew reinstall coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbcbrew link coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbcexport KERL_C
2020-10-10 15:38:58 1768
原创 解决rebar3在中文环境下部分命令失败
问题rebar3因为毕竟是基于英文环境开发的,很多命令匹配都是基于英文返回内容,因此可能部分命令会执行失败===> Verifying dependencies...===> Compiling game_fight===> Assembling release game_fight-0.1.0...===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.
2020-09-23 14:24:52 1084
原创 IDEA支持erlang的protobuffer定义的结构体直接跳转到proto文件
简介erlang的protobuffer使用无论是使用erlang_protobuffs还是gpb,一般都是将proto转成erlang的record,然后编码的时候使用record来进行编写。当然gpb也支持将proto转换成maps格式,但是maps格式在IDE上的提示无法做的很完善。因此本文还是基于gpb转换的record形式的proto来做介绍依赖测试环境基于IDEA 2020.1,需要提前安装好erlang插件之后便是关键的proto插件,proto插件在Google开源后有人进行了维护
2020-09-07 14:48:46 1191
原创 使用IDEA进行erlang的断点调试
简介IDEA可是说是目前对erlang语言支持最好的IDE了,包括文件跳转,代码提示等已经相当成熟。但是因为缺少官方维护,erlang的debug功能还是相对简陋的,包括当前最新版本的erlang插件,对debug功能的支持也不能算完整。erlang官方也提供了debug功能,虽然易用性上还是偏弱,但是功能还是相对比较完整。每次重启的时候必须重新载入环境,断点之类的配置都是在环境中。如果调试需要重启节点,就会很麻烦。IDEA提供的基础debugIDEA的erlang插件提供的debug大体上可以分为
2020-05-12 18:37:25 2967 11
原创 Lager库使用介绍
使用Lager库来管理erlang应用的日志模块erlang本身已经提供了基础的日志模块error_logger还有OTP 21.0之后的Logger模块,这些模块在项目比较轻量,日志可控,功能简单的情况下完全可以满足需要,但是Lager提供了一个更加成熟的完整的解决方案,从日志文件的配置,等级设定,到跟踪,日志文件轮转提供了完整的生态接口,通过Lager几乎可以满足所有的日志需求,而且不需要考...
2019-12-16 15:19:46 2655
原创 Lager库的Trace功能使用
简介Lager的trace功能十分强大,在生产环境中,我们需要使用日志来配合定位问题,而如果只是单纯的使用日志等级来控制,在日志量非常大的时候可能会有性能负担,同时日志文件也难以查找,使用trace可以清晰的筛选我们想要的日志,且不影响其他日志逻辑...
2019-12-16 15:19:15 388
原创 mongo日志按天切割
mongo日志按天切割mongodb日志默认是单个文件的append模式,也就意味着日志文件会愈来愈大可以通过mongodb提供的logRotate逻辑实现一个日志切割和过期日志删除的脚本脚本内容如下#!/bin/shsource /root/.bashrcDAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份echo -e "use admin \n db.r...
2019-09-02 11:10:10 790
原创 Docker学习总结
简介Docker是一种类似虚拟机的技术,通过docker,可以在一台云主机,物理机上运行完全隔离的独立环境,环境都是通过DockerFIle描述,发布成镜像后,通过镜像就可以在任意环境下实现相同环境的运行,例如开发环境是mac下,有些编译内容和纯linux下不一定相同,到发布时可能需要重新编译。通过docker可以将应用和环境进行粘合,无论在什么主机条件下,应用运行的环境永远都是一样的。除此...
2019-02-15 16:21:02 281
原创 基于win10自带虚拟机安装UbuntuServer
本文只是记录安装过程中可能遇到的疑难问题,基础步骤参照给出的链接中的文章即可,这里只是一个新安装环境会遇到的问题整理开启Hyper-v和安装虚拟机的方法不细述了,网上有很多开启Hyper-v安装Ubuntu这里只额外介绍下网上讲的比较少的部分安装部分Ubuntu镜像可以在163提供的地址进行下载,也可以在官方进行下载,不过163快的多安装的时候可能会遇到说镜像没通过安全检查之类的,如...
2019-02-15 16:01:29 1632
原创 搭建http文件分享服务器
简介在内网中,通过简单的文件夹共享就可以达到不同pc之间互相访问文件,但是可能会受到权限或者防火墙的问题,导致共享失败。或者如果有自动化需求,文件共享的文件不能像使用wget命令这样直接简单的进行下载,因此可以在内网中搭建一个基于http的文件分享服务器,既能确保分享成功,又可以在需要自动化的时候进行支持本文将介绍两种在Mac环境下搭建文件服务器的方法:基于ApacheMac自带了Apa...
2019-02-12 16:54:34 4906 1
翻译 rebar3使用介绍(七)测试
rebar3使用介绍(七)测试eunitcommon test (ct)代码覆盖率Rebar3内置了eunit和ct(common_test)测试运行器。通过遵循一些约定,您可以使用单个Rebar3命令运行测试套件。eunit运行eunit测试非常简单:$ rebar3 eunitRebar3将带上宏{d, TEST, true}和{d, EUNIT, true}编译所有项目模块,以便...
2018-11-12 16:59:37 1226
翻译 rebar3使用介绍(六)用户自定义文件配置
rebar3使用介绍(五)用户自定义文件配置例子选项合并算法依赖和配置文件依赖永远按照prod模式对应的profile进行编译,不会有其他(当然不包括default)任何东西会被额外的套用上来,即使它们是为prod依赖项配置的,仍然会将其提取到其声明的配置文件的配置文件目录中。例如,顶层的依赖关系deps将放在_build/default/lib下,test将放在_build/test/li...
2018-11-12 16:58:51 1469
翻译 rebar3使用介绍(五)自定义依赖获取方式
rebar3使用介绍(四)自定义依赖获取方式每个依赖获取方式都是 rebar_resorece behavior描述-module(rebar_resource).-export_type([resource/0 ,type/0 ,location/0 ,ref/0]).-type resource() ::...
2018-11-12 16:58:16 763
翻译 rebar3使用介绍(四)依赖
rebar3使用介绍(四)依赖声明依赖关系源依赖包依赖Checkout 依赖更新依赖锁文件 Lock File依赖锁管理依赖关系和配置文件将始终使用prod应用于其配置的配置文件编译依赖项。没有其他(default当然,除此之外)用于任何依赖。即使它们是为prod依赖项配置的,仍然会将其提取到其声明的配置文件的配置文件目录中。例如,顶层的依赖deps将存放在_build/default/li...
2018-11-12 16:57:44 3325
翻译 rebar3使用介绍(三)命令
rebar3使用介绍(三)ascompilecleanctcoverdepsdodialyzeredocescriptizeeunitget-depshelpnewpathpkgsreleaserelupreportshelltartreelockunlockupdateupgradeversionxref本篇主要介绍rebar3的命令as它使配置文件名称和任务列表在该配置文件下运行.举个...
2018-11-12 16:57:02 3675
翻译 rebar3使用介绍(二)配置项
rebar3使用介绍(二)全局配置Alias 别名ArtifactsCompilation测试选项CoverDialyzerDistributionDirectories 目录EDocEscriptEUnit最小OTP版本检查OverridesHook 钩子shell钩子功能钩子自写功能中可以hook的点RELXSHELLXRef本篇主要介绍rebar3的配置部分全局配置rebar3支持全局...
2018-11-12 16:56:33 4292
翻译 Rebar3使用介绍(一)基础用法
Rebar3使用介绍(一)安装基础用法创建一个新的app或者release加入deps依赖编译输出配置测试发布本文基本都是按照rebar3官方文档翻译加上自己的理解整理而成,可能有纰漏,疑惑部分请查看原文订正。安装使用源码安装$ git clone https://github.com/erlang/rebar3.git$ cd rebar3$ ./bootstrap直接下...
2018-11-12 16:55:56 9772 2
原创 Ranch尝鲜
简介ranch是一个用erlang实现的tcp链接的管理池,他有如下特点(摘抄自git库):Ranch aims to provide everything you need to accept TCP connections with a small code base and low latency while being easy to use directly as an appli...
2018-10-30 16:06:07 1156
原创 observer_cli 基础使用扩展指南
observer_cli 基础使用扩展指南简介安装基础用法主界面介绍编写自己的自定义插件简介observer_cli是一个针对erlang虚拟机,基于recon实现的模仿werl的observer功能的工具。因为生产环境一般都是linux系统,而observer是不支持linux系统,有了observer_cli就可以在linux环境下更直观的观察环境,及早发现问题。以下是作者自己介绍:V...
2018-10-29 16:04:17 802
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人