Log4j概述

Log4j是一个使用Java语言编写的,可靠、快速、灵活的日志框架(API),使用Apache Software License授权。

它被移植到C、C++、C#、PerlPythonRubyEiffel语言中。

Log4j是高度可配置的,在运行期使用外部的配置文件对其进行配置。它按照优先级别记录日志,并可将日志信息定向输出到各种介质,比如数据库、文件、控制台、Unix Syslog等。

Log4j组成部分

Log4j主要由三部分组成:

  • loggers:负责采集日志信息。
  • appenders:负责将日志信息发布到不同地方。
  • layouts:负责以各种风格格式化日志信息。

Log4j的历史

  • 始于 1996 年,作为记录E.U. SEMPER(Secure Electronic Marketplace for Europe)项目跟踪信息的API
  • 经过大量的完善和蜕变,最初的API终于演进为Log4j,一个在Java社区流行的日志类库。
  • 该类库使用Apache Software License授权,该授权是经开源促进协会认证的、完整的开源协议。
  • 最新版本的Log4j,连同其代码、类文件和文档可通过http://logging.apache.org/log4j/获取。

Log4j的功能

  • 线程安全。
  • 速度优化。
  • 基于命名的logger层次。
  • 每个logger支持多种输出appender
  • 支持国际化。
  • 不受限于预定义好的设施。
  • 日志记录行为可在运行期通过配置文件设置。
  • 设计之初就考虑了处理Java异常。
  • 使用多个日志级别:
    • ALL
    • TRACE
    • DEBUG
    • INFO
    • WARN
    • ERROR
    • FATAL
  • 通过扩展Layout类可轻松改变输出日志的格式。
  • 输出日志的目的和策略可通过实现Appender接口改变。
  • 失败即停止。虽然Log4j努力做到最好,但不保证每一条日志都能发送到指定目的地。

记录日志的优缺点

记录日志是软件开发中的重要一环。编写良好的日志代码能为运行应用提供快速的诊断信息和良好的存储结构,方便维护。

记录日志也有其缺点,它会让应用变慢。假如输出太详细,可能会导致屏幕闪动。为了减轻这些影响,Log4j被设计为可靠的,更快的和可扩展的。

由于日志很少是应用程序关注的焦点,所以Log4j API力争做到简单并易于理解和使用。

Win10 Conexant SmartAudio HD声卡 插入耳机没反应

打开SmartAudio

按下快捷键Win+X,然后按下快捷S,打开小娜的搜索框,输入控制面板,进入控制面板,点击硬件和声音,点击SmartAudio:
图片

SmartAudio设置

音频导向器设置

点击音频导向器(下方倒数第二个),选择MULTI-STREAM:
图片

插口配置

点击插口配置(下方最后),选中头戴式耳麦,勾选上关闭插口配置弹出窗囗:
图片

音量混合器

点击音量混合器,然后插入耳机,如果带有耳机图标的音量控件亮起来了,那就识别成功了:
图片
这样就可以了,关掉SmartAudio窗口

后续使用

SmartAudio设置好之后,可以在任务栏右下角的声音图标上面点击鼠标左键,选择使用耳机播放或者使用扬声器播放:
图片

使用 屏录软件的录音功能

大多数屏录软件都会提供录音功能,而且免费的屏录软件比较多.

EV录屏

下载 安装

https://www.ieway.cn/

使用

图片

使用virtual audio device + win10自带录音机

这种方式比较麻烦,使用Win10自带的录音器就可以了录音,也是免费的.

下载virtual audio device

安装virtual audio device

设置默认的声音输入声音输出设备

打开声音设置

图片

打开 声音控制面板

图片

设置默认播放设备为Line 1

图片

设置默认录制设备为Line 2

图片

转发声音输出

打开Audio Repeater (MME)

图片

设置输入为Line 1 设置输出为扬声器或者耳机

图片

使用Win10自带录音机进行录音

使用Windows 10自带的录音机进行录制

使用第三方录音软件

我查了一些这样的内录软件,但是基本都是收费的.不建议使用这种方式

参考资料

https://www.cnblogs.com/riskyer/p/3304131.html

如何下载GitHub Releasess上面发布的软件

使用迅雷下载

我尝试了一下,目前可以直接使用迅雷下载.

Chrome浏览器插件

安装Chrome浏览器插件:GitHub加速

Chrome浏览器 使用油猴脚本

先安装管理脚本的浏览器插件:Tampermonkey

然后安装脚本:
Github 镜像访问,加速下载
下载打开脚本之前,先退出自己的账号.

使用GitHub代下载服务

http://g.widyun.com/
这个网站会转换成一个高速的下载地址
例如

1
https://github.com/Tomotoes/scrcpy-gui/releases/download/1.5.1/ScrcpyGui-1.5.1.win64.exe

会转换为:

1
http://g.widyun.com/source/20200623/76ee6b5d12a8de08c39daee3f851d6cf.exe

然后再使用多线程下载工具下载即可

翻墙

翻墙后就可以下载了.

Chrome浏览器视频下载器 测评

推荐视频下载器插件

一键视频下载器

下载链接

提供方:Cypress
https://chrome.google.com/webstore/detail/one-click-video-downloade/bhepgcoaibmmehlmckhlmbdgcemhidcg

运行效果

这个插件可以播放视频,可以复制视频链接,点击播放按钮,会弹出一个窗口来播放

复制视频链接后,可以使用多线程下载工具来下载视频,这样下载速度会快点

Video Downloader for Web

下载链接

提供方:webSaver
https://chrome.google.com/webstore/detail/video-downloader-for-web/pgffceondpnmmmlbpmchkldadpclbcph

运行效果

这个视频下载器,和上面的差不多,就是上面的是中文的界面,这个是英文的界面而已:

终极视频下载器

下载链接

提供方:182 Inc.
https://chrome.google.com/webstore/detail/ultimate-video-downloader/ahbcaincngigokdjdlcjnfcdoonccngb

运行效果

这个插件,既可以弹出对话框播放视频,也可以弹出窗口播放视频。播放视频的时候比上面多出点选择,其他大同小异.

其他可用的视频下载器插件

Video Downloader Plus

下载链接

提供方:Paul Evans
https://chrome.google.com/webstore/detail/web-video-downloader/adahebendgkgacfmpnmoddebbnfpfkcd

运行效果

这个插件的播放按键是视频的封面(图中封门是错字):

预览效果

点击封面可以播放你要下载的视频,这样方便确认是不是你要下载的视频:

Video Downloader Pro

下载链接

提供方:Madison Finch
https://chrome.google.com/webstore/detail/video-downloader-pro/ccdikaeknpeokoejlpffihfmpfelakcg

运行效果

Video Downloader professional

下载链接

提供方:Video Downloader professional
https://chrome.google.com/webstore/detail/video-downloader-professi/bacakpdjpomjaelpkpkabmedhkoongbi

运行效果

保存在raw.githubusercontent.com上的图片无法访问

问题描述

最近,Github的raw文件读取地址(raw.githubusercontent.com)遭受DNS污染,导致文件下载困难。
而我文章中的图片,保存在github上.导致无法显示图片.

解决方案

找到raw.githubusercontent.com真正的IP地址

通过搜索引擎,找一个查询IP地址的网站,然后在网站中输入raw.githubusercontent.com进行查询即可得到对应的IP地址

1
2
3
https://site.ip138.com/raw.githubusercontent.com/
http://ip.tool.chinaz.com/ipbatch
https://githubusercontent.com.ipaddress.com/raw.githubusercontent.com

site.ip138.com

例如,https://site.ip138.com/raw.githubusercontent.com/ 这个网站查询到如下IP:

1
2
3
4
5
6
7
8
日本 东京 151.101.108.133
美国 151.101.64.133
美国 151.101.0.133
美国 51.101.192.133
保留地址 0.0.0.0
日本 东京 151.101.228.133
美国 151.101.128.133
中国 香港 151.101.76.133

在IP地址后吗添加raw.githubusercontent.com得到:

1
2
3
4
5
6
7
151.101.108.133 raw.githubusercontent.com
151.101.64.133 raw.githubusercontent.com
151.101.0.133 raw.githubusercontent.com
51.101.192.133 raw.githubusercontent.com
151.101.228.133 raw.githubusercontent.com
151.101.128.133 raw.githubusercontent.com
151.101.76.133 raw.githubusercontent.com

https://www.ipaddress.com/

https://githubusercontent.com.ipaddress.com/raw.githubusercontent.com
查询到的地址为:

raw.githubusercontent.com resolves to the following 4 IPv4 addresses:
185.199.108.133
185.199.109.133
185.199.110.133
185.199.111.133

在IP地址后吗添加raw.githubusercontent.com得到:

1
2
3
4
185.199.108.133 githubusercontent.com
185.199.109.133 githubusercontent.com
185.199.110.133 githubusercontent.com
185.199.111.133 githubusercontent.com

修改hosts

Win10电脑上修改

进入目录:C:\Windows\System32\drivers\etc,打开hosts文件,在末尾,填入上述地址即可.

1
2
3
4
5
151.101.108.133 raw.githubusercontent.com
151.101.64.133 raw.githubusercontent.com
151.101.0.133 raw.githubusercontent.com
51.101.192.133 raw.githubusercontent.com
151.101.228.133 raw.githubusercontent.com
刷新DNS

打开cmd,输入:

1
ipconfig /flushdns

运行效果

1
2
3
4
5
6
7
C:\Users\lan>ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

C:\Users\lan>

这样你电脑上就可以访问到保存在github raw上面的图片了.

安卓手机上修改hosts

编辑hosts文件

这要求你的手机root过,具体可以查找其他教程进行设置.

下载修改hosts的软件

  • Hosts Go
    Hosts Go添加hosts
    点击HOSTS设置按钮,然后点击顶部的 + (加号),分别输入ip地址和域名,最后点击启动即可

参考资料

https://www.jianshu.com/p/bbd79e0444ea

Win10 插入耳机后 耳机无声音 扬声器有声音

最近Win10更新后,我插入耳机一直没有效果,耳机没有声音,电脑还是使用扬声器播放,就好像没插入耳机一样.
但是我之前使用的时候插入耳机线,耳机是有声音的,这就很奇怪。
经过无数次的尝试后,终于解决了.为此记录一下:

打开声音设置

在右下角的声音图标上右键,选择打开声音设置(E):
图片

声音控制面板

点击声音控制面板,选择扬声器,点击**属性(P)**按钮
图片

取消勾选 允许应用程序独占控制该设备

点击高级选项卡,在独占模式哪里取消勾选 允许应用程序独占控制该设备
图片

当然如果取消勾选 允许应用程序独占控制该设备之后,还是没有解决问题,那可能是其他原因.

参考资料

win10插上耳机电脑还是有声音,怎么处理? - 不明真相的吃瓜群众的回答 - 知乎
https://www.zhihu.com/question/48204899/answer/656280146

问题描述

Dependabot cannot update to the required version
View details about this error or learn more about Dependabot security updates.

1 kind-of vulnerability found in **package-lock.json** on 3 Apr
**Remediation**
Upgrade **kind-of** to version **6.0.3** or later. For example:
1
2
3
"dependencies": {
"kind-of": ">=6.0.3"
}
or…
1
2
3
"devDependencies": {
"kind-of": ">=6.0.3"
}
Always verify the validity and compatibility of suggestions with your codebase.

分析

大概是说package-lock.json文件中的kind-of依赖项版本太低,让我修改到6.0.3版本以上.
但是我打开package-lock.json这个文件查看了一下,各种依赖项密密麻麻,我是不能看手动去一个一个更改的.

解决方案

我们知道,这个package-lock.json文件是,npm install安装的时候自动生成的.
我如果重新安装一遍,会自动生成这个package-lock.json文件.

具体做法

将目录node_modules/和文件package-lock.json删除掉,保留package.json文件,然后执行npm install命令重新安装插件即可:

删除node_modules目录和package-lock.json文件

删除之前的站点目录:

lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blog (master)
$ ls
_admin-config.yml  FM.properties  HexoS.sh*      node_modules/      scaffolds/        themes/
_config.yml        HexoD.bat      HexoSTest.bat  package.json       source/
db.json            HexoS.bat      KillBlog.sh    package-lock.json  StartWriting.bat

删除后的站点目录:

lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blog (master)
$ ls
_admin-config.yml  db.json        HexoD.bat  HexoS.sh*      KillBlog.sh   scaffolds/  StartWriting.bat
_config.yml        FM.properties  HexoS.bat  HexoSTest.bat  package.json  source/     themes/

重新安装package.json中的插件

1
npm install

安装之后:

lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blog (master)
$ ls
_admin-config.yml  FM.properties  HexoS.sh*      node_modules/      scaffolds/        themes/
_config.yml        HexoD.bat      HexoSTest.bat  package.json       source/
db.json            HexoS.bat      KillBlog.sh    package-lock.json  StartWriting.bat

可以看到package-lock.json文件又回来了,里面的依赖版本也都更新到最新的版本了.

推送到Github

1
2
git add .
git commit

刷新GitHub仓库页面,可以看到上面的Security警告消失了。

文本部分内容已过时

valien评论系统会受到攻击。可以使用衍生的Waline评论系统。

注册LeanCloud

LeanCloud分为国内国际版的。
国内的在2019-10-1之后需要自定义已备案域名才能使用,
所以我这里使用国际版,先到LeanCloud国际版注册一个账号.

验证邮箱 验证手机号

注册好之后,点击头像(图片有误,不是右键,是点击鼠标左键),选择账号设置:

然后验证手机号和邮箱:

创建应用

点击创建应用按钮:

找不到的可以点击这个链接来创建:

1
https://console.leancloud.app/applist.html#/newapp

选择开发版

选择不要钱的开发版

进入设置

设置Web安全域名,填入自己的域名

依次点击左侧边栏上的设置,安全中心,然后下拉页面,找到Web 安全域名,把你站点的域名填写进去:

获取APP ID 和 APP Key

依次点击左侧边栏上的设置,应用 Keys,然后复制下AppIDAppKey:

打开Next主题配置文件 启用Valine 填写appid和appkey

打开博客目录的next主题配置文件 _config.yml ,找到Valine,将上图的APP IDAPP Key复制到对应位置。:

到这里其实就可以使用Valine这个评论系统了,下面来设置邮件提醒

设置邮件提醒

部署邮件提醒项目 Valine-Admin

依次点击左侧边栏上的云引擎,部署,然后下拉页面,点击部署项目:

然后选中Git部署,点击配置Git按钮,填写第三方邮件提醒源代码库地址,保存

1
https://github.com/zhaojun1998/Valine-Admin


继续下拉页面,使用master分支,然后点击部署:

配置环境变量

点击做出的云引擎,设置,然后点击添加新变量按钮添加以下环境变量:

  • SITE_NAME : 网站名称。
  • SITE_URL : 网站地址, 最后不要加 / 。
  • SMTP_USER : SMTP 服务用户名,一般为邮箱地址。
  • SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式
  • SMTP_SERVICE : 邮件服务提供商,支持QQ、163、126、Gmail、”Yahoo”、…… ,全部支持请参考 :Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器
  • SENDER_NAME : 寄件人名称。

怎么获取SMTP授权码(SMTP_PASS)

我使用的是163的邮箱,参见:163邮箱设置smtp密码步骤

保证绝大多数时间邮件服务正常

免费版的LeanCloud容器,是有强制性休眠策略的,不能24小时运行:

  • 每天必须休眠 6 个小时
  • 30 分钟内没有外部请求,则休眠。
  • 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。

分析了一下上方的策略,如果不想付费的话,最佳使用方案就设置定时器,每天 7 - 23 点每 20 分钟访问一次,这样可以保持每天的绝大多数时间邮件服务是正常的。

配置Web主机域名

首先需要先配置下Web主机的域名,使用定时器时要用到。

添加新的环境变量

添加环境变量,ADMIN_URL,值设置为https://你刚才设置的域名.avosapps.us/,如图所示:

添加定时器

云引擎,定时任务,创建定时任务,名称随便写,选生产环境,选择self_wake函数,选择Corn表达式,输入:

1
0 */20 7-23 * * ?

保存

重启Valine-Admin项目

查看定时器效果

云引擎,日志,看到如下信息表示自动唤醒任务运行成功:

1
自唤醒任务执行成功,响应状态码为: 200

测试邮件提醒效果

填写评论

填写昵称,邮箱,评论,然后提交

查看邮件提醒

应该过不了多久就可以收到邮件提醒:

点击邮件中的 点击前往查看 超链接,即可查看评论:

删除评论

通过直接在表中的删除

使用评论管理系统

添加用户

然后在Use表中增加账号,

只需要填写passwordusername。其中username必须设置为你的上面环境变量SMTP_USER的邮箱相同.不然无法登录

登录评论管理系统

地址就是上面设置的web主机名:https://你刚才设置的域名.avosapps.us/

进入评论系统后就可以查看评论或者删除评论了:

参考资料

使用Leancloud+valine打造Hexo-NexT评论系统
https://github.com/zhaojun1998/Valine-Admin
https://github.com/zhaojun1998/Valine-Admin/blob/master/高级配置.md#web-评论管理
https://lqcoder.com/p/aab4c717.html

问题描述

配置文件中保存有软件的APP_ID和秘钥,为了别人能使用这个文件,我把它加入了版本库中,当然里面只有key,没有秘钥:

1
2
APP_ID=
SECURITY_KEY=

我现在希望这个配置文件提交之后,就再也不再被Git追踪到了。
这样我自己才能把APP_ID和秘钥填进去,自己使用。

解决方案

先只提交key

第一次提交只有key没有value的配置文件,

填写value

然后在配置文件中填写上value

忽略修改

使用命令:

1
git update-index --assume-unchanged filename

忽略对配置文件的修改。
这样我填写上秘钥后,只能再本地起作用。

添加到.gitignore

别人使用这个项目的时,配置文件依然只有key,没有value

参考资料

https://www.liuin.cn/2017/11/16/Git-%E5%81%9C%E6%AD%A2%E8%BF%BD%E8%B8%AA%E6%96%87%E4%BB%B6/