slf4j、Log4j、Log4j2与Logback关系详解和相关用法
作为一名 Java 开发程序员,我们对项目中的日志打印肯定不会陌生,但是有没有发现,Java 的日志框架有很多,琳罗满目,这些框架有什么区别呢?有什么关系呢?在了解之后,仅以本文做一点粗浅的记录。
作为一名 Java 开发程序员,我们对项目中的日志打印肯定不会陌生,但是有没有发现,Java 的日志框架有很多,琳罗满目,这些框架有什么区别呢?有什么关系呢?在了解之后,仅以本文做一点粗浅的记录。
自部署了 T 佬的 GPT-Load 和 New API,一开始使用的是 MySQL,想迁移到 PostgreSQL,因此轻微折腾了一下,过程极其顺利,稍微写一篇记录一下。
相关版本:
该方案理论适合多数项目服务的迁移,细节方面需要根据实际情况做调整,只在 T 佬的 GPT-Load 和 New API 测试操作成功,运行了一段时间也没有问题。
Claude Code 发布以来,编程能力是目前公认最强的,但是对国内不太友好,封控严重,国内一封一大片,我也在一直观望,否则秒封白折腾。
但是 7 月 11 号晚上 月之暗面发布 Kimi K2,总参数 1T,支持 Anthropic API,价格还便宜,可以替换 Claude Code 的默认模型,实现国内无痛用上 Claude Code
最新 7 月 28 号,智谱发布 GLM 4.5,综合评分全球第三、开源第一,总参数 3550 亿,高速低成本,API 调用价格低至输入 0.8 元/百万 tokens、输出 2 元/百万 tokens,同样也支持 anthropic 格式的 API,直接爽炸!
完全不懂编程,毫无经验,折腾了两个月的一些想法 (心得都算不上)。
使用模型:chatgpt-4o
[!info] chatgpt-4o 与 gpt-4o 的区别
chatgpt-4o 是 OAI 给客户端聊天用的,实时更新,而 gpt-4o 则是给 API 调用的,更新速度比较慢。chatgpt-4o 相对比较贵,但效果更好
原因:GPT 跟其他大模型最有竞争力的地方就是他的记忆功能,以及最近加强的全局记忆,可以使我们在一个对话过长的情况下,新开一个对话,仍然能保留大部分进度对齐,对于前期零散,不成体系的想法阶段效率最高。这也是为什么需要有 plus 个人账号,这样才能使用管理对话记忆。
思路:
使用模型:Gemini-2.5pro, Claude-Opus 4
原因:GPT-O3 降智厉害,如果是满血 O3,确实做深度研究还不错,但从实际使用上来看,O3 都不会思考太久,效果不太行。
思路:
使用模型:Gemini-2.5pro, Claude-Sonnet 4
原因:Sonnet 4 代码能力足够,Opus 使用次数限制太多了。
思路:
这里分两个阶段,
使用模型:GPT-Codex
原因:Gemini 和 Claude 都没有记忆功能,虽然都能接入 Github,但实际用起来他们也无法通读整个程序文件,所以代码在全局性上可能会出现一些错误,靠我们这种没基础的很难去做全局的微调。
思路:
Git Push
Ask
功能,让他发现错误Coding
,解决个别代码问题几个模型互有优势,靠单一模型,或者就几个程序文件生成几千行代码,感觉也只能实现一些基础的应用。看 B 站好多 up 主就知道让大模型做个 to do list,或者打个飞机小游戏,这些不是真正的具体需求。虽然没有程序基础,但是想法大家都有,如何利用各大模型的优势去弥补自己编程能力的不足,从而完整的实现自己的想法才是个人的价值所在,AI 始终只是个工具,真正的核心还是人。
在 macOS 上设置开机或用户登录后自动执行 Shell 脚本,最现代且可靠的方法是使用 launchd
。这是 Apple 官方推荐的用于管理守护进程和服务的系统。
相比于老旧的 crontab
或简单的“登录项”,launchd
提供了更强大的控制能力和稳定性。
本文档旨在提供一个全面的指南,介绍如何在 Ubuntu 24.04 服务器上使用 Nginx 设置反向代理(以 Emby 为例),并通过 Certbot 获取和管理 Let’s Encrypt 免费 SSL 证书,实现 HTTPS 安全访问。
Ubuntu 24.04 LTS 服务器: 拥有 sudo
权限。
域名: 拥有一个域名,并且其 DNS A 或 AAAA 记录已指向服务器公网 IP 地址。
防火墙配置: 服务器防火墙(如 ufw
)已允许外部访问 TCP 端口 80 (HTTP) 和 443 (HTTPS)。
1 | sudo ufw allow 'Nginx Full' # 或者分别允许 80 和 443 |
1 | sudo apt update && sudo apt install nginx |
目前通过该方式安装 Nginx,Nginx 配置默认都是采用配置分离的方式,即 Nginx 推荐的最佳实践。我们只需要在 /etc/nginx/sites-available/
中新增自己的站点配置,并建立软链接到 /etc/nginx/sites-enabled/
即可。
为了便于管理,Nginx 配置通常采用分离的方式。主配置文件 nginx.conf
(通常在 /etc/nginx/
) 会通过 include
指令加载其他目录下的配置文件。常见的做法有:
/etc/nginx/conf.d/*.conf
: 任何在此目录下的 .conf
文件都会被加载。/etc/nginx/sites-available/
和 /etc/nginx/sites-enabled/
:在 sites-available/
中创建站点配置文件。
通过在 sites-enabled/
中创建指向 sites-available/
中文件的符号链接来启用站点。
1 | sudo ln -s /etc/nginx/sites-available/your-site.conf /etc/nginx/sites-enabled/your-site.conf |
1 | sudo apt update && sudo apt install certbot python3-certbot-nginx |
1 | sudo certbot --nginx -d emby.yourdomain.com --cert-name yourdomain.com |
--nginx
: 使用 Nginx 插件进行验证和安装。-d emby.yourdomain.com
: 指定要为其申请证书的域名。--cert-name yourdomain.com
: 关键参数。告诉 Certbot 使用或创建一个名为 yourdomain.com
的证书。这样,证书文件会存放在 /etc/letsencrypt/live/yourdomain.com/
,与 Nginx 配置匹配。回车后,Certbot 会引导:
过程中,Certbot 会:
yourdomain.com
的证书是否存在。emby.yourdomain.com
被包含在该证书中(如果不存在则添加,如果证书本身不存在则创建)。/etc/letsencrypt/live/yourdomain.com/
。/etc/nginx/sites-available/default
执行完 Certbot 命令后,证书已经保存下来,最后根据模板对自己需要的站点配置进行定制即可。可以结合被自动修改过的 /etc/nginx/sites-available/default
建议让 AI 协助生成和优化,非常方便。
1 | # /etc/nginx/sites-available/emby.conf |
如果已经有 Nginx 配置了,那么需要在对应的站点配置上确保有如下监听 80 端口的 Server,例如:/etc/nginx/sites-available/emby.conf
中确保有以下配置:
1 | # /etc/nginx/sites-available/emby.conf |
接着再执行 Certbot 命令:
1 | sudo certbot --nginx -d emby.yourdomain.com --cert-name yourdomain.com |
执行后,Certbot 会自动在 站点配置中的 443 Server 中生成例如以下的配置:
1 | # /etc/nginx/sites-available/emby.conf |
假设 Emby 运行在 http://127.0.0.1:8096
,期望通过 https://emby.yourdomain.com
访问。
1 | # /etc/nginx/sites-available/emby.conf |
启用配置:
1 | sudo ln -s /etc/nginx/sites-available/emby.conf /etc/nginx/sites-enabled/ |
certbot --version
或 which certbot
。ls -l /etc/letsencrypt/
。如果存在 live
, archive
, renewal
等子目录,则很可能使用 Certbot。ssl_certificate
和 ssl_certificate_key
指令是否指向 /etc/letsencrypt/live/yourdomain.com/fullchain.pem
和 privkey.pem
。systemctl list-timers | grep certbot
ls -l /etc/cron.d/certbot
或 sudo crontab -l
live/yourdomain.com/fullchain.pem
: 完整的证书链(推荐使用)。live/yourdomain.com/privkey.pem
: 私钥。live
目录下的文件是符号链接,指向 archive
目录中的最新版本。/etc/ssl/certs/
和 /etc/ssl/private/
(Debian/Ubuntu 传统位置): 用于非 Certbot 管理的证书。/etc/pki/tls/certs/
和 /etc/pki/tls/private/
(RHEL/CentOS 传统位置)。始终通过检查 Nginx 配置文件中的 ssl_certificate
和 ssl_certificate_key
指令来确定实际使用的证书路径。
1 | sudo nginx -t |
确保输出 syntax is ok
和 test is successful
。
1 | sudo systemctl reload nginx |
Certbot 包通常会自动设置 systemd timer 或 cron job 来处理续期。
模拟续期(不会真正续期,仅测试配置):
1 | sudo certbot renew --dry-run |
查看 systemd timer:
1 | systemctl list-timers | grep certbot |
在确认 HTTPS 完全正常工作后,可以考虑在 Nginx 的 HTTPS server
块中添加 HSTS (HTTP Strict Transport Security) 头,强制浏览器始终使用 HTTPS 访问:
1 | add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; |
注意: 启用 HSTS 后,如果 SSL 配置出现问题,用户可能在 max-age
时间内无法通过 HTTP 访问你的站点。请谨慎操作,并确保 SSL 证书自动续期正常工作。
如果之前使用过其他激活方式,建议先彻底卸载 Typora 再重新安装。放心,卸载不会导致本地配置或笔记丢失。
typora-setup-x64.exe
,在安装选项中,请务必选择 “仅为当前用户安装” (Install for current user only)。version.dll
version.dll
复制到 Typora 的安装目录中。%AppData%\Local\Programs\Typora
此步骤的目的是屏蔽 Typora 的在线激活验证。
按下 Win + R
快捷键,打开 “运行” 对话框。
输入以下命令: notepad C:\Windows\System32\drivers\etc\hosts
紧接着按下 Ctrl + Shift + Enter
组合键,以 管理员身份 运行记事本。
在打开的 hosts
文件末尾,添加以下内容并保存:
1 | 127.0.0.1 store.typora.io |
按下 Win + R
快捷键,打开 “运行” 对话框。输入以下命令:powershell
在打开的终端输入,将会刷新缓存:ipconfig /flushdns
访问地址: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
Ctrl + S 保存,此时就 OK 了,回来刷新页面,输入 China:
搜索你的学校:
如果有你的学校,那么恭喜你,可以继续下一步,如果没有,那就 sorry 了。
接着正常填写,提交,等待审核!
本教程适用于 2024 年之后的 Github 学生认证申请,因为现在的认证流程改变了很多,所以重新进行了总结这方面的指南。
[!important] 重要
学生认证优惠的审核是自动程序审核的,所以可以用一些 trick 来说服自动审核程序,帮助大家通过自动审核。
OpenMediaVault (OMV) 是一款基于 Debian 的开源网络附加存储(NAS)解决方案,它通过易于使用的界面提供数据存储、备份和共享服务。结合 Nextcloud,用户可以在 OMV 平台上搭建一个功能强大的私人网盘,实现文件同步、分享和协作。这种组合不仅增强了数据的可访问性和安全性,也为个人和小型企业提供了一个成本效益高、隐私保护好的云存储解决方案。通过 Docker 容器或直接安装,OMV 与 Nextcloud 的整合可以轻松完成,满足现代数字生活的存储需求。