Golang 日志库

任何一个系统开发,都离不开完备的日志系统。go 日志不同其他语言,比如 java 由于 commons-logging 日志标准,和不同实现 如log4j,slf4j,logback,但都是统一调用标准接口;python 中标准logging 模块,功能强大,基本上满足各种需求。但是在golang 语言开发中,目前阅读了几个开源代码,都是自己实现了一套日志记录标准,并没有采用go 官方 log 模块。golang’s log 模块主要提供了3类接口。分别是 “Print、Panic、Fatal”,对每一类接口其提供了3中调用方式,分别是 “Xxxx 、 Xxxxln 、Xxxxf”,基本和fmt中的相关函数类似;但功能有限,很难比如按天,按照容量自动输出拆封生成新日志。如果自己开发一套日志,基本上要满足日志等级输出如DEBUG,INFO,WARN,ERROR/FATAL 、支持输出 console 或者滚动式文件、参数格式化输出、自定义格式化模板,当然如果支持更高级别如按照pakcage输出到不同文件,按照日志级别输出到不同地方那就更好了。

阅读更多

golang使用Zap日志库

1. zap 介绍

Golang Zap库是一个由Uber公司开发的高性能日志记录库,专为Go语言应用程序设计。Zap库以其出色的性能和灵活性而闻名,为开发者提供了结构化、分级别的日志记录功能,此外Zap库还支持日志切割功能,可以根据文件大小、时间或间隔等来切割日志文件,方便管理和分析。Zap库还支持自定义日志格式和输出方式。你可以通过配置Encoder来自定义日志的输出格式,包括时间戳、日志级别、调用文件/函数名和行号等信息。同时,你还可以将日志输出到不同的目的地,如控制台、文件或远程日志系统。

阅读更多

Angular async pipe中的异常处理

处理 web 应用程序中的错误对于获得良好的用户体验非常重要。有时会发生异常,每个应用程序都应该涵盖这些情况,以帮助用户了解发生了不好的事情。

许多教程没有显示如何在使用异步管道时处理错误/异常情况。因此,在这篇文章中,我们将研究如何处理这些错误案例的一些技术。

阅读更多

Angular SEO 友好的编码实践

如果您正在使用 Angular 开发网站或应用程序,您很可能希望它在搜索引擎中排名靠前。正如您可能已经读到的,这会带来一些挑战。Angular 是一个著名的前端框架,广泛用于构建单页面应用程序,即 SPA。它们以其流畅、即时的页面转换和出色的用户体验而闻名。但也存在一些缺点,尤其是在 SEO 性能方面。

阅读更多

深入了解 Angular 异步管道

Angular 异步管道(Async pipe)是 Angular 框架中在 HTML 模板中使用 Observables 或 Promises 的方法之一。而且在大多数情况下,我认为这是在 Angular 中处理 Observables 和 Promise 的首选方式。

当您使用异步管道订阅 Observable 或 Promise 时,您将收到 Observable 或 Promise 最后发出的值。

请注意,在 Observable 或 Promise 发出值之前,需要在 HTML 模板中初始化异步管道,否则管道不会接收任何值。

因此,如果异步管道位于 *ngIf 内,并且 Observable 在 ngIf 计算为 true 之前发出一个值,则不会显示任何内容,并且异步管道在发出新值之前不会接收任何值。

使用 Angular 异步管道很简单,并且比订阅 Observables 和 Promise 的一些更标准的方法提供了一些好处。

阅读更多

使用Angular制作Github pages网站

GitHub Pages 是 GitHub 提供的一项服务,人们可以免费托管网站。这有助于人们为他们的博客、作品集、业务等托管个人网站。我们可以毫不费力地在 GitHub 页面上托管一个只有 HTML、CSS 和 JavaScript 的简单网站,但复杂的应用程序需要一些努力。

Angular 应用程序本身有许多附加内容,如组件、node 模块、路由等等功能。有几种方法可以在 GitHub Pages 中托管 Angular 应用程序。在这篇博客文章中,我们将看到在 GitHub Pages 中托管 Angular 应用程序的最简单方法。

阅读更多

在Fedora 39上安装Libreoffice

1. 办公软件产品介绍

  • LibreOffice 是一款开放源代码的自由免费全能办公软件,可运行于 Microsoft Windows、GNU/Linux 以及 macOS 等操作系统上。它包含了 Writer、Calc、Impress、Draw、Math 以及 Base 等组件,可分别用于文本文档、电子表格、幻灯片演示文稿、绘图文档、数学公式编辑、数据库管理等工作。
阅读更多

update-alternatives 命令详解

1. 介绍

update-alternatives 命令在 Linux 系统中具有重要的作用。它主要用于维护符号链接,这些符号链接确定了各种任务或实用工具的默认命令或应用程序。update-alternatives 允许系统管理员或用户选择在其系统上使用哪个版本的特定命令或应用程序。

阅读更多

解决GitHub访问不了的方法

一直用的 GitHub,突然一下子不能访问了,最后发现是 DNS 解析的 IP 地址出了问题,按照以下方法修改又能访问 github 了。

最后发现是DNS解析被污染了,解析到了无法访问的ip地址,通过ipaddress等网站查询到正确的地址,采用本地解析的方式,最终解决了问题。

关于DNS解析污染参考这篇文章

阅读更多

Almalinux安装与使用

1. 背景介绍

CentOS 8 于 2021 年 12 月 31 日正式结束了生命周期。这意味着官方不再提供对该版本的安全补丁、错误修复或功能改进等支持服务。因此,建议用户将其系统升级到最新的操作系统版本以获得更好的性能和安全保障。CentOS-7 由于用户基数与用户贡献较多,因此会按照计划维护至生命周期结束即 2024 年 6 月 30 日,接下来一年会把重心放到 CentOS Stream 上。由于CentOS Stream相对不稳定,因此很多朋友会有从Centos-7迁移至AlmaLinux-8的需求。

阅读更多

如何在 Fedora 中安装和切换桌面环境

您是否想在Fedora Workstation spin中使用或尝试其他桌面环境,而不是默认的GNOME 3。在本文中,我们将展示如何使用图形用户界面 (GUI) 和命令行界面 (CLI) 在 Fedora Linux 中安装和切换桌面环境。

阅读更多

如何在fedora上关闭ipv6

有时因为某些服务器不支持ipv6会出现EHOSTUNREACH错误,需要关闭ipv6

  1. 将如下几行配置添加到 /etc/sysctl.conf
1
2
3
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
  1. 重新加载以上配置
1
sysctl -p
  1. Check. A ‘1’ means IPv6 has been disabled
1
cat /proc/sys/net/ipv6/conf/all/disable_ipv6