slf4j、Log4j、Log4j2与Logback关系详解和相关用法
作为一名 Java 开发程序员,我们对项目中的日志打印肯定不会陌生,但是有没有发现,Java 的日志框架有很多,琳罗满目,这些框架有什么区别呢?有什么关系呢?在了解之后,仅以本文做一点粗浅的记录。
作为一名 Java 开发程序员,我们对项目中的日志打印肯定不会陌生,但是有没有发现,Java 的日志框架有很多,琳罗满目,这些框架有什么区别呢?有什么关系呢?在了解之后,仅以本文做一点粗浅的记录。
访问地址:https://www.cursor.com/cn/students
此时会跳转到以下页面:
然后发现 Country 找不到 China,
右键打开 Google 浏览器 devtool
Sources -> Overrides
电脑本地建一个空文件夹,例如“chrome-overrides”
将空文件夹添加到 Overrides 中,并开启:
此时 Chrome 会在顶部提示 “DevTools requests full access to [你选择的文件夹路径]”。点击 “Allow” (允许)。
my.sheerid.com/rest/v2/program/xxxx/theme?locale=en-US
这个 API 的请求。theme?locale=en-US
定位 API找到 config.countries
,添加 CN
此时就 OK 了,回到页面,输入 China:
搜索你的学校:
如果有你的学校,那么恭喜你,可以继续下一步,如果没有,那就 sorry 了。
接着正常填写,提交,等待审核!
本教程适用于 2024 年之后的 Github 学生认证申请,因为现在的认证流程改变了很多,所以重新进行了总结这方面的指南。
[!important] 重要
学生认证优惠的审核是自动程序审核的,所以可以用一些 trick 来说服自动审核程序,帮助大家通过自动审核。
OpenMediaVault (OMV) 是一款基于 Debian 的开源网络附加存储(NAS)解决方案,它通过易于使用的界面提供数据存储、备份和共享服务。结合 Nextcloud,用户可以在 OMV 平台上搭建一个功能强大的私人网盘,实现文件同步、分享和协作。这种组合不仅增强了数据的可访问性和安全性,也为个人和小型企业提供了一个成本效益高、隐私保护好的云存储解决方案。通过 Docker 容器或直接安装,OMV 与 Nextcloud 的整合可以轻松完成,满足现代数字生活的存储需求。
在 Proxmox 6.5.11-8 中,偶发性会出现以下报错,尤其是在进行大文件传输后:
1 | [97377.240263] e1000e 0000:00:1f eno1: Detected Hardware Unit Hang: |
一旦出现该问题,Synology NAS 就会进入不可用的状态。
错误信息表明网络接口卡(NIC)在进行数据传输时遇到了硬件单元挂起的问题。这种情况在重网络负载时更容易发生。
这是多年来 I219-V、I218-V… 网卡型号及其驱动程序的一个已知错误。不仅在 proxmox 上,在 xcp-ng 上也是如此。
这个问题,截止 Proxmox 6.5.11-8 仍未被彻底解决,只能通过禁用 TCP 校验和卸载。
通过执行命令:ethtool -K eno1 tso off gso off gro off
即可解决,但是每次重启机器或者网卡,都会失效。具体含义下方会说明。
如何长期解决?
在 /etc/network/interfaces
中,添加以下代码:
1 | iface eno1 inet manual |
eno1
接口启动之后执行一系列动作。logger
程序,将一条调试级别(debug
)的信息写入系统日志。日志内容为 "Disabling offload for eno1"
,标记为 ifup
。这样做的目的是记录接口启动时禁用某些功能的动作,方便日后查看系统日志,了解配置是否按预期执行。(可通过 journalctl -t ifup -p debug
查看日志)ethtool
工具来关闭网络接口的一些“硬件卸载(offload)”功能。具体地:[!info] 信息
- TSO、GSO 和 GRO 分别用于控制 TCP 分段、通用分段和接收卸载,这三个是针对传输层和网络层的优化。
- tx off 和 rx off 是更通用的选项,用于关闭整个发送(TX)和接收(RX)的卸载功能。
如果已经关闭了 TSO、GSO 和 GRO,那么
tx off
和rx off
可能会显得多余,因为这些设置会影响整个数据包的处理,而不只是特定的卸载功能。在大多数情况下,只需关闭 TSO、GSO 和 GRO 就可以了,
tx off
和rx off
可以根据需要选择是否使用。如果需要彻底禁用卸载功能,可以使用它们,但通常只关闭 TSO、GSO 和 GRO 是足够的。
[!note] 注意
这对于一些系统可能没有生效,那么可以尝试通过注册 Service 的方式执行。这里不赘述。
如何查看 tso、gso、gro 是否已经关闭:ethtool -k eno1 | grep -E 'tso|gso|gro'
均为 off,说明已经关闭。
如何查看 TCP 校验和卸载是否开启:ethtool -a eno1
些参数主要用于控制网络接口的流量控制,以减少数据包丢失,确保在网络拥堵时网络的稳定性。
配置后,Synology NAS 终于不会再“突发恶疾”了!!!
当 NGINX 的日志文件变得过大时,通常的做法是进行日志切片(log rotation),这样可以防止单个日志文件过大,便于管理和存储。
而 NGINX 自身或者其扩展的模块均不支持类似的功能。 所以 NGINX 日志切片通常需要依赖外部工具来实现,比如 Linux 系统中常用的 logrotate
。以下是如何使用 logrotate
对 NGINX 日志进行切片的步骤:
当我使用 Windows 11 下的 VSCode 启动 Vue 项目时,出现以下报错:
1 | ERROR error when starting dev server: |
在 Apache ServiceComb 中,Highway
, Vertx
, 和 HTTP
都与微服务间的通信有关,但它们之间的角色和关系是不同的。下面是一个简要的描述来解释它们之间的关系:
Highway:
Vertx:
HTTP:
关系总结:
基于以上的描述,我们可以看到,Highway 和 HTTP 都是通信协议,但目标和设计思路略有不同,而 Vert.x 是提供通信框架和异步处理能力的库。
Java 语言普遍用于开发各种类型的软件系统、应用程序和 Web 服务,包括财务软件系统、社交网络软件、移动应用程序(虽然现在多用 Kotlin)、虚拟现实系统、嵌入式系统、大数据应用程序等。
此外,Java 还常用于开发游戏服务器和游戏客户端、智能家居软件和安全相关软件。
Go 语言很适合构建高性能的高并发的服务,可以在游戏、金融、物联网、系统工具等方面得到应用。Go 语言还可以开发分布式系统,构建容器、虚拟化、存储等云计算基础架构。因此 Go 语言可以用于以下任务:
此外,Go 易学快捷,而且可以完成高效的字节码编译,所以适合建立大型应用系统和分布式系统。
Python 语言常用来做程序开发/应用开发、桌面开发(PyQt)、网络编程、Web 开发、科学计算、自动化测试、人工智能、大数据等任务。
此外,Python 还可以用来编写游戏,移动应用等,但很少被用来做这类事情。