关于多线程/进程访问文件占用的问题。

youaway 2014-10-11 02:53:27
现在有一个程序A在运行,它将日志记录到一个txt文本文件中。
为了便于使用日志文件,单独查看txt已经不能够支撑运行分析。此时需要定制一个日志分析软件B。

但是A程序运行时一直独占使用该txt文件以便随时快速写入日志。并且A程序开发时并没有考虑日志文件将来的监控功能。故A程序不能为此需求做任何设置或变动。

由于B不能在A运行时监控日志情况,所以失去了实时监控的意义。

日志组件为log4net,请问如何做到实时监控?
...全文
239 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-10-13
  • 打赏
  • 举报
回复
引用 8 楼 youaway 的回复:
[quote=引用 4 楼 sp1234 的回复:] 连写个日志的(只要在公共调用层修改)几行代码都“不能为此需求做任何设置或变动”,我是觉得除了公司倒闭、产品下线,也没有什么好办法了。
呵呵,你是小公司呆久了吧,一个人在几百人的公司横惯了所以什么都敢莫名其妙的叫嚣。在国企集团,部门之间沟通都是有阶层的,你难道不知道?这么点问题让你等3个月,我就不能先发帖问问有没有其他办法? 你很适合去网易啊,那里的键盘侠都很欢迎你![/quote] 你是在大国企呆久了,只懂玩人事,根本不关心技术了吧? 你这个问题,不改代码还要去掉BUG,技术层面上根本无解. 如果做这个软件的人拒不配合,那你也只能干等了呗.
youaway 2014-10-13
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
连写个日志的(只要在公共调用层修改)几行代码都“不能为此需求做任何设置或变动”,我是觉得除了公司倒闭、产品下线,也没有什么好办法了。
呵呵,你是小公司呆久了吧,一个人在几百人的公司横惯了所以什么都敢莫名其妙的叫嚣。在国企集团,部门之间沟通都是有阶层的,你难道不知道?这么点问题让你等3个月,我就不能先发帖问问有没有其他办法? 你很适合去网易啊,那里的键盘侠都很欢迎你!
於黾 2014-10-13
  • 打赏
  • 举报
回复
提问题,寻求解决办法,是在"要把错误的改成正确的"这个前提下的 有错误又不改,那你到底想问什么?
於黾 2014-10-13
  • 打赏
  • 举报
回复
楼主提出了一个问题: 我的程序有个大BUG,我不想改任何代码,但是想去掉这个BUG 那么只能按4楼的办法,整个丢弃掉不要用,就没有BUG了
rayyu1989 2014-10-12
  • 打赏
  • 举报
回复
一直打开是可以设置成允许其他程序读取文件的,如果A本来就是这样就不用做任何改变,如果不是修改下打开方式也不会改变a的任何功能,为何不能?
  • 打赏
  • 举报
回复
连写个日志的(只要在公共调用层修改)几行代码都“不能为此需求做任何设置或变动”,我是觉得除了公司倒闭、产品下线,也没有什么好办法了。
devmiao 2014-10-12
  • 打赏
  • 举报
回复
A程序如果可以修改,那么将它打开文件的共享权限设置为共享读。
youaway 2014-10-11
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
http://www.cnblogs.com/springyangwc/archive/2011/08/27/2155547.html
你好,帖子中忘了加上:目前使用文件监控类FileSystemWatcher仅仅是为了触发事件发送信号AutoResetEvent.Set。因为日志文件很大,一般来说最少有1万行,平均3万。我不想任何变动都重新读取整个文件。所以目前使用的是另建子线程用来无止尽的读文件(streamreader),当读到最后一行时便无限制等待信号。 故你的这个网址我认为是没有太大用处的

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧