日志数据脱敏方法研究

日志文件中的敏感信息比如密码,电话号码等等进行过滤处理。第一个想到的方法就是去 log4j 中自定义 Appender,在 Appender 中正则匹配敏感信息进行过滤。 log4j 日志框架在之前 的文章中也也说过,主要有三个组件,Logger,Appenders 和 Layout,要过滤日志内容解决方法也就是从这三个地方着手。 log 时手动处理 Logger 着手就是在打日志的时候就处理,从根源解决。最精确的处理就是在每个类敏感的字段上手动处理,在打印日志时,封装方法手动转换 String 。这种方法唯一的缺点就是对于一个大型成熟的系统,要修改 Read more ...

2018-12-20 log4j , log , desensitize , 日志 , 脱敏

log4j PatternLayout 输出模板

log4j 下的 PatternLayout 只是 Layout 的一种,用来格式化日志文件的输出。在 PatternLayout 中,配置一个样板字符串,通过该字符串来定义输出格式。 log4j 还提供了其他三种 Layout org.apache.log4j.HTMLLayout(以 HTML 表格形式布局) org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 这个类的目标是格式化 Logg Read more ...

2018-12-19 log4j , java , log

Unix 进程

Unix 内核在硬件之上,与硬件交互,系统文件读写,网络数据发送,内存分配,扬声器播放音频等等。程序不能直接访问内核,通信通过系统调用完成。 系统调用是内核和用户空间交互的桥梁,规定了程序和计算机硬件之间可以发生的交互。 Unix 的系统调用文档已经在系统中,输入 man man 查看。 进程是 Unix 系统基石,所有的代码都在进程中被执行。 进程标示 唯一进程标示 PID,PID 本身没有任何进程信息,只是一个数字。系统中每一个进程都有其父进程,PPID。多数情况下,特定进程的父进程就是调用他的进程。 文件描述符值用来跟踪打开的资源,已经关 Read more ...

2018-12-17 unix , linux , process

log4j appender

Appender 表示日志输出的地方,常见的有控制台,文件等等,log4j 自带了一些常用的 Appender。 日志中的 LEVEL 和 threshhold log4j 框架中有两个概念 logger 和 appender。如果 logger 的最低 level 设置为 warn,这意味着任何日志 level 低于 warn 的日志都会被忽略。 一旦一个消息被 logger 接收,这条消息会被发送给一个或者多个 appenders(to console,to file,to mail server, etc). 每一个 appender 都会定 Read more ...

2018-12-17 log , java , log4j , slf4j

重构读书笔记

重构第一步,构造可靠的测试环境。 What 任何可以立即查阅的东西,都故意不去记忆。 什么是重构 重构,对软件内部结构调整,在不改变外部可观察行为的前提下,提高其可理解性,减低修改成本。 重构难题 对于修改接口,能获取所有调用者,那么可以安心修改。如果无法修改全部调用者,如果是公开已经发布的接口,就需要同时维护新旧两个接口,直到所有用户将该变化做出反应。 How Duplicated Code 重复代码提炼。兄弟类,则推到 super class,如果是不完全相同的,则分解方法提炼统一的方法。 Long method 小函数准确的命 Read more ...

2018-12-16 java , refactor , coding , programming

JProfile 简单使用

在学习 ThreadLocal 的时候有人推荐了 JProfiler ,可以用来对 Java 内存泄露分析,JProfile 其实是一个 Java 的性能分析工具,不仅可以用来排查 OutOfMemoryError 的错误,对于查找系统瓶颈,查看 Java 堆信息等等都有很强大的功能支持。 搜索一番之后发现也有很多 Java Profiler 的工具,JDK 自带也有 Java VisualVM 这样的工具。 JProfiler JProfiler’s intuitive UI helps you resolve performance bottle Read more ...

2018-12-14 java , jprofiler , visualvm

英语搭配语字典整理

最近用 [[GoldenDict]] 查词非常频繁且非常有效的提高了阅读的效率,但是在日常有的时候听一些英语口语的广播节目的时候,经常会有一些短语搭配,而我们平时如果写作的话,其实短语较于单词更为重要,口语亦然。所以产生了一个念头,如果有一本英语搭配语字典就能够提高不少效率,没想到都不用去刻意搜索,就出来了好几个推荐。 Oxford Collocation Dictionary 牛津英语搭配语词典 The BBI dictionary of English word combinations BBI 英语搭配词典 Longman Coll Read more ...


Bash Script

Shell Syntax - what is your input means to the shell Shell Operations - what can shell do read input from file breaks the input into words and operations parse the token into simple and compound commands performs the various shell expansions redirections execute th Read more ...

2018-12-14 linux , shell , bash , assignment

Linux 下安装 openssh server

一般服务器中会默认已经安装 SSH server,而个人版本的发行版,比如桌面版的 Ubuntu 或者我用的 Mint 可能默认没有安装,那么就需要自己安装配置。 SSH is program and protocol for securely logging into remote machines across a network. It allows you to run programs, and do a variety of tasks as if you were sitting at the machine. SSH is ver Read more ...

2018-12-12 linux , openssh , ssh

每天学习一个命令:gzip 压缩文件

gunzip 是个使用广泛的解压缩程序,它用于解开被 gzip 压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。 事实上 gunzip 就是 gzip 的硬连接,因此不论是压缩或解压缩,都可通过 gzip 指令单独完成。 命令格式 unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir] 常用参数: -c 将输出写到标准输出上,并保留原有文件 -d 把 .gz 文件解压出来 Read more ...

2018-12-11 linux , gzip , tar , command

最近文章

  • RAGFlow:以深度文档理解为核心的开源 RAG 引擎介绍与部署使用教程 这两年我陆陆续续接触过一些 RAG 小工具,从最早自己用 [[LangChain]] 拼一个 demo,到后来用 [[AnythingLLM]]、[[Dify]] 的知识库功能,有一个体验几乎每次都会重演:拿几篇 Markdown 测试的时候效果惊艳,一旦换成真实的业务材料,比如一份带合并单元格的财报 PDF、一份双栏排版的论文、几页扫描的合同,回答马上就开始胡说八道。追查下去会发现问题根本不在大模型,而在最前面的解析和切块环节,表格被拍平成一串没有表头的数字,左右两栏的文字被交错拼接在一起,模型拿到的上下文本身就是错的。也正是因为这个痛点,我在调查 ESP32 小智 AI 后端的时候发现了 [[RAGFlow]],一个可以「深度文档理解」的开源 RAG 引擎。
  • Git 本地忽略文件:.git/info/exclude 的作用与使用技巧 由于本地 IDE、插件、Agent 的差异,所以经常打开项目之后会出现一些只属于我自己的文件,AI Agent 和一些 MCP,Skill 也喜欢在项目根目录里面添加文件。每次 git status 都能看到这一串红色的 untracked 文件,看着很烦,又不太好意思为了自己的习惯去改项目的 .gitignore。这时候我想起了 .git 目录里一个存在感极低的文件 info/exclude,它刚好就是为这种场景设计的。
  • Meta Muse 使用教程:上手设置、提示词技巧与实用案例 上一篇 Meta Muse 介绍与注册指南:一个会替你跑腿的个人 AI Agent 把 [[Muse]] 是什么、怎么注册、额度怎么算都整理了一遍,但是留了一个结尾:注册完之后到底该让它干什么。Muse 上线这几周,我查阅了一些测评体验,整理了 X 和 Threads 上用户晒出来的用法,发现大家的使用路径其实很像:从提醒和文件这类零风险的任务开始,确认它靠谱之后再慢慢接入邮箱、日历,最后才让它碰钱。这篇就按这个顺序来整理,从界面和设置讲起,再到具体的案例和踩过的坑。
  • Meta Muse 介绍与注册指南:一个会替你跑腿的个人 AI Agent 2026 年 9 月 8 日,[[Meta]] 发布了个人 AI Agent [[Muse]],宣传语只有一句:「它去做,而不是告诉你怎么做」。用 [[ChatGPT]] 或 [[Claude]] 时,我们得到的往往是一份说明书,真正动手的部分,打开网页、填表单、下单付款,还得自己来。Muse 想把这一段也接过去:你交给它的不是一个问题,而是一件事,它会自己打开浏览器一步步做完,需要你拍板时再回来问你。这是 Meta 迄今为止在消费级 AI 上下的最大一笔注,两周后的 Connect 2026 大会几乎整场都围绕它展开。
  • Jev:不聊天只做判断的 System One 决策模型 过去一两年,大模型的发展方向几乎都是更长的思考链、更大的上下文、更强的 Agent 能力。但在日常写代码和搭建自动化流程的过程中,我发现很多地方用到大模型,其实只是为了让它做一个简单的判断,却要付出几秒钟的等待和解析 JSON 的麻烦。TypeSafe AI 发布的 Jev 走了一条相反的路:不聊天、不写代码,只做快速的判断。