PDA

View Full Version : سوال: خواندن فایلی که برنامه دیگری از آن استفاده می کند



alireza.tabesh
سه شنبه 23 دی 1393, 10:17 صبح
سلام.
من یک سرویس دارم که کارهای خودش رو Log میکنه. واضح تر بگم برای VOIP هست و تمامی تماس ها و همچنین خطاها Log میشه . این سرویس داره در فایل write میکنه و بستن فایل بعد از هر Write با توجه به حجم Log ها اصلا به صرفه نیست .
این سرویس که پنل مدیریت تحت وب داره .

و حالا سوال اینکه :
در این پنل تحت وب می خوام فایل های Log رو بخونم اما آخرین فایل چون سرویس داره روش می نویسه امکان خوندن ندارم.

آیا امکانی هست که فایل در حال نوشتن رو بخونم ؟ (البته بدون کپی کردن فایل)

alireza.tabesh
سه شنبه 23 دی 1393, 11:08 صبح
var fileStream = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);


با این روش حل شد

SabaSabouhi
سه شنبه 23 دی 1393, 11:56 صبح
سلام
پیشنهاد می‌کنم رویه رو تغییر بدین و توی یه دیتابیس log رو ذخیره کنید.
چون با تعریفی که شما کردین، دو تا مساله رو می‌شه پیش‌بینی کرد.
1. حجم این فایل زیر بار خیلی بزرگ بشه.
2. نوشتن و خواندن فایل‌ها باعث کندی سرویس شما می‌شه، بخصوص اگه سرویس شما خیلی پرکار باشه.

اما اگه از دیتابیس استفاده کنید، هم مشکل سرعت ندارین و هم این که می‌تونید با
یه برنامه‌ی زمان‌بندی Logهای قدیمی شده رو Backup کرده و از دیتابیس حذف کنید.

صبا صبوحی

alireza.tabesh
یک شنبه 28 دی 1393, 10:27 صبح
Log ها در این فایل text فقط write میشن و فایل های log به ازای هر 1M بسته شده و فایل دیگری ایجاد می شود .
log ها بصورت کلیدی نوشته شدن که حجم کمی داشته باشند .
بازهم ممنون از راهنمایی