10

我正在尝试使用 Java Logger。我得到了包含内容的记录器文件(name.log),它可以工作,而且我还得到一个空name.log.lck文件。

为什么会出现此文件,创建它们的程序是什么以及如何删除此行为?

4

4 回答 4

19

.lck处理程序(文件处理程序)使用它来锁定文件以删除此文件。在关闭程序之前,您需要关闭与该记录器对象关联的处理程序。

以下是如何关闭关联处理程序的示例行:

for(Handler h:log.getHandlers())
{
    h.close();   //must call h.close or a .LCK file will remain.
}
于 2010-10-01T09:28:07.400 回答
3

lock files are commonly used in Unix/Linux to ensure exclusive or serial access to an important resource.

In this case, the resource is the log file itself--you wouldn't want two or more logger instances trying to write to the same log file at the same time. That would not work out well at all. More about file locking

As Peter Barrett says about the Java Logger:

When the log file is created, a separate lock file called (in your case) "dbslogfile.txt.lck" is also created. The Logger uses this as a mutual exclusion mechanism for access to the actual log file.

于 2010-04-27T17:17:13.730 回答
1

".lck" sounds suspiciously like a lock file. You didn't say which logger you use but at elast one of them uses .lck files for locks - see this reply:

When the log file is created, a separet lock file called (in your case) "dbslogfile.txt.lck" is also created. The Logger uses this as a mutual exclusion mechanism for access to the actual log file. It doesn't seem to have been able to create it (it would have to create the lock file before the log file, of course).

于 2010-04-27T17:17:08.913 回答
0

为什么会有 .LCK 文件?

在 Linux 中,我有这些.LCK文件:

> ls -l
-rw-r--r--  1 el el 4810 Feb  9  2013 mybackground.gif
-rw-r--r--  1 el el   33 Feb  9  2013 mybackground.gif.LCK
-rwxr--r--  1 el el  193 Feb  9  2013 my_file.html
-rw-r--r--  1 el el   33 Feb  9  2013 my_file.html.LCK

一些程序正在创建这些文件。你必须找出它是哪一个。执行此操作的程序将是一个尝试通过网络或什至在此磁盘上对这些文件执行某种操作的程序。同步、复制或删除磁盘上文件的编写不佳的程序可能会选择在其操作中使用锁定文件。

我的锁定文件包含以下信息:

eric||my.myemail@hotmail.com

.LCK一旦使文件处于打开状态的不负责任的过程退出后,删除文件是安全的。这些文件的目的是确保执行相同操作的两个进程不会相互影响而导致错误。

文件的使用.LCK是一种糟糕的编程习惯,违反了“不要再猜测自己”的规则。创建执行冗余操作的代码只是为了确保我们做对了三倍,这表明您是一个糟糕的程序员

任何程序被当场乱扔这些 .LCK 文件,都应该以极端的偏见进行负面评价。

就我而言,这是一个“DreamWeaver CS4 自动同步”操作创建并保持打开这些文件。您必须手动删除这些文件,然后找出导致这些文件保持打开状态的操作,然后提交错误报告以修复该软件。

于 2013-10-22T17:15:38.640 回答