log 的记录, 哪有这么缺心眼的

这几天才发现, 自己的 ~ 目录下突然多了个名叫 libpeerconnection.log 的文件, 里面是空的.

这几天做了好多事情啊, 哪知道是哪个动作干的捏?

删掉了事, 然后做事结束, 关机. — 好吧,我好奇心太小了.

然后重启后, 突然发现又出了这么个玩意儿. 这是个情况, 某个奇怪的常用程序设置问题?

google 一下, 可以得到很多信息, 顺着链接查看, 可以发现是 chrome 干的, chrome 说是 chromium 干的. 无论是谁, 罪魁祸首找到了

顺着这个思路, 很快找到了这个 issue, 它指出了错误的源头, , 这家伙提交了一个 commit , 其中找到如下这么触目惊心的一段.

diff --git a/third_party/libjingle/overrides/initialize_module.cc
b/third_party/libjingle/overrides/initialize_module.cc
....
+ if (CommandLine::Init(0, NULL)) {
+#if !defined(OS_WIN)
+ // This is not needed on Windows since CommandLine::Init has already
+ // done the equivalent thing via the GetCommandLine() API.
+ CommandLine::ForCurrentProcess()->AppendArguments(command_line, true);
+#endif
+ logging::InitLogging(
+ FILE_PATH_LITERAL("libpeerconnection.log"),
+ logging::LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG,
+ logging::LOCK_LOG_FILE,
+ logging::APPEND_TO_OLD_LOG_FILE,
+ logging::DISABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS);
+ }
.....

谢谢你姥姥一家子, 毛事没有, 先在当前目录生成一个 .log 文件?

照你这么玩, gtk 是不是要每次开机在我 /boot 目录下生成几十个二进制文件才配得上他的身份?

===============================================================================

我们知道, 世间万物都是有代价的, 因为效率的问题, 付出的往往必须要比收获的多, 而且还要多不少.

在代码上一样, 我们需要解决一个问题, 往往面对一些权衡, 空间换时间? 时间换空间? 美观换效率? 效率换美观? 一个奇怪的语法还是可维护性好但是效率稍微差点的一段实现?

无论是什么样的选择, 我们都应该符合如下规律:

损失需要有回报, 比如一个占用内存大很多的片段,解决同一个问题,如果不能更加快,要你何用?

损失应该可以被人接受, 比如要是为了加速下 chrome, 却干掉我几个 lib 库中的东西, 这显然是不可以接受的

如果可以, 选择权力可以交给最终用户, 比如这个, 给我个配置文件让我选择是否要记录, 记录在哪里要死啊

比如这次, 这位同志, 你知道我开机第一句话是什么? 是 ls

你知道, 我开机后第一个目录是在哪里? 是 ~

每次看到你这段充满智慧的代码, 看到那个傻 X 的 log 文件, 我就想, 这家伙是政府出来的吧.