解决使用Java logging文件记录日志过程中产生.lck文件和重复文件的问题

问题描述

    在使用Java logging的过程中,产生了许多.lck文件和带着后缀的重复文件。尝试使用记事本打开这两种文件,.lck文件为空,不同的重复文件中记录的是一条或者几条不同的log信息。而需求是要将这些所有的log信息记录到一个文件中。


.lck文件的作用

    名副其实,lck是lock的缩写。这类文件其实之前我们也接触过,不过大都没有注意而已。比如说使用VMware虚拟机运行Linux系统过程中,虚拟机对应的文件夹就会产生一个.lck文件,当虚拟机关闭相应的文件也会自动删除。但是如果虚拟机异常关闭.lck文件保留的情况下,再运行这个虚拟机将会遇到类似虚拟机不存在的错误(曾经遇到过)。说到这里其实也能对它的作用做一些基本的判断了。.lck文件就是对文件的一种锁定方式,当文件处于被访问状态时,一部分处理机制就是生成.lck文件防止其他进程的读取。当对着个文件访问的进程正常结束时,该文件自动删除,保持可访问状态。

问题的处理方法

    将lck文件全部删除,发现lck文件生成在程序运行阶段,但是关闭了以后并没被删除,手动删除以后再次运行,发现需要写入的log写入到了正确的文件中而不是另外生成一个带后缀的重名文件。考虑到是使用FileHandler过程中未调用close()方法来结束进程,于是在代码末尾添加了close()方法,发现仍会出现相同的问题,但是生成的重名文件变少了几个。问题没有解决,但是方向和思路应该就在这里。

    然后我检查了我所有的代码,定义过FileHandler的地方

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值