
**WEBVTT**

00:00.020 --> 00:03.530
توی این ویدیو قراره ببینیم چطور میشه داده‌هارو لاگ گرفت.

00:03.530 --> 00:10.130
ایده پشت این کار اینه که فقط بهت نشون بدم چطور انجام میشه، چون می‌خوام از همین کد تو ویدیوی بعدی استفاده کنم.

00:10.130 --> 00:10.760
توی ویدیوی بعدی

00:10.760 --> 00:16.490
می‌خوایم درباره‌ی decoupling صحبت کنیم، یا حداقل یه دید کلی ازش بدم و یه مثال واقعی ببینیم،

00:16.490 --> 00:22.700
و همین‌طور بررسی کنیم چرا و کی باید ازش استفاده کنیم.

00:22.700 --> 00:25.490
خب یه کلاس به اسم File داریم، درسته؟

00:25.490 --> 00:29.120
و این کلاس کلی متد باحال داره.

00:29.120 --> 00:31.880
این کلاس داخل System.IO قرار داره.

00:31.880 --> 00:33.710
IO یعنی Input Output.

00:33.710 --> 00:38.630
و این یکی بهمون اجازه میده فایل بسازیم، کپی کنیم، حذف کنیم، جا‌به‌جا کنیم یا بازش کنیم.

00:38.630 --> 00:39.260
خب،

00:39.260 --> 00:40.730
خیلی هم عالیه.

00:40.730 --> 00:45.320
و اینجا File قراره کار زیر رو برامون انجام بده.

00:45.320 --> 00:48.230
قراره از AppendAllText استفاده کنیم.

00:48.260 --> 00:51.410
می‌تونیم نسخه‌ی Async اون رو هم استفاده کنیم،

00:51.410 --> 00:56.540
ولی اون یه‌کم پیچیده‌تر میشه چون باید از await و این چیزا استفاده کنیم، که Yannick قراره

00:56.540 --> 01:00.830
وقتی به multithreading برسیم، حسابی عمیق‌تر توضیحش بده.

01:00.830 --> 01:03.890
پس فعلاً ساده نگهش می‌داریم و از AppendAllText استفاده می‌کنیم.

01:03.890 --> 01:10.010
این کار باعث میشه هر متنی که بهش می‌دیم به مسیر موردنظر اضافه بشه.

01:10.010 --> 01:12.530
اول باید تصمیم بگیریم مسیرمون کجا باشه.

01:12.530 --> 01:14.390
من خیلی ساده می‌گیرمش.

01:14.390 --> 01:21.200
می‌گم داخل همون مسیر فعلی یه فایل log.txt بساز،

01:21.350 --> 01:26.270
اگه وجود نداشت بسازش، اگه هم وجود داشت فقط متن جدید رو بهش اضافه کن.

01:26.270 --> 01:29.030
حالا مثلاً می‌نویسم Hello World.

01:29.030 --> 01:32.690
پس این خط کد یه فایل می‌سازه و متن Hello World رو داخلش می‌نویسه.

01:32.690 --> 01:39.440
اسم فایل هم میشه log.txt.

01:39.440 --> 01:41.750
خب، سریع اجراش کنیم و می‌بینیم چیزی روی کنسول نمایش داده نمیشه،

01:41.750 --> 01:45.560
ولی اشکال نداره چون هدفمون کنسول نیست.

01:45.650 --> 01:47.840
چیزی که برامون مهمه اتفاقیه که داخل برنامه‌مون می‌افته.

01:47.840 --> 01:50.300
پس داخل app یه پوشه debug داریم با net8.

01:50.300 --> 01:55.160
اونجا یه فایل log ساخته شده که ساعتش مثلاً 8:40:54 هست، یعنی همین الآن.

01:55.160 --> 01:58.580
اگه بازش کنیم می‌بینیم داخلش نوشته Hello World.

01:58.580 --> 02:05.390
حالا اگه برنامه رو دوباره اجرا کنیم، Hello World بعدی به دنبالش اضافه میشه.

02:05.390 --> 02:08.420
اجراش کنیم، ببندیم، دوباره log رو باز کنیم.

02:08.420 --> 02:13.970
می‌بینی نوشته Hello World, Hello World.

02:13.970 --> 02:15.230
خب حالا می‌تونیم یه \n اینجا بذاریم

02:15.230 --> 02:26.750
و یه plus هم اضافه کنیم، که باعث میشه یه line break بیفته.

02:26.750 --> 02:29.540
پس اگه دوباره اجرا کنیم، Hello World سوممون تو خط بعدی میاد.

02:29.540 --> 02:35.150
فایل log رو باز کنیم، اوه ندیدیم،

02:35.150 --> 02:44.060
ولی اگه دوباره اجراش کنیم می‌بینیم که این بار واقعاً توی خط بعدی رفته.

02:44.060 --> 02:45.680
دوباره اجرا کنیم برای اطمینان.

02:45.680 --> 02:51.200
آره، حالا هر Hello World جدید میره توی خط بعد.

02:51.200 --> 02:51.650
فقط دقت کن

02:51.650 --> 02:54.560
که وقتی اول چند بار اجراش کرده بودیم هنوز line break نداشتیم.

02:54.560 --> 02:58.250
ولی وقتی اون کاراکترها رو اضافه کردیم، از اون به بعد درست شد.

02:58.250 --> 03:00.950
اگه حالا فایل log رو پاک کنم و از اول اجرا کنم،

03:00.950 --> 03:02.360
دفعه‌ی اول یه Hello World می‌نویسه،

03:02.360 --> 03:08.030
دفعه‌ی دوم یه Hello World دیگه تو خط بعد.

03:08.030 --> 03:10.280
و حالا هردوش جدا هستن، مرتب و تمیز.

03:10.280 --> 03:12.980
خب عالیه.

03:12.980 --> 03:13.520
و این یعنی حالا

03:13.520 --> 03:15.290
می‌تونیم هر خطایی یا هر دیتایی که خواستیم رو لاگ کنیم.

03:15.290 --> 03:44.120
که خیلی هم به درد می‌خوره، مخصوصاً وقتی برنامه‌ت رو به کاربر تحویل می‌دی و یه ارور پیش میاد،

03:44.120 --> 03:50.390
میتونی ازش بخوای اون فایل log رو برات بفرسته تا ببینی چی شده.

03:50.390 --> 03:56.150
یا حتی می‌تونی داده‌ها رو مستقیماً توی یه cloud database ذخیره کنی

03:56.150 --> 04:03.770
تا خطاهایی که کاربران ایجاد می‌کنن رو ببینی.

04:03.770 --> 04:07.220
البته باید از نظر قوانین مربوط به حفاظت داده بررسیش کنی،

04:07.220 --> 04:13.880
چون ممکنه تو کشورت یا کشور کاربران از نظر قانونی درست نباشه.

04:13.880 --> 04:19.730
خب، اینم از این ویدیو.

04:19.790 --> 04:20.540
توی ویدیوی بعدی

04:20.540 --> 04:22.340
می‌خوام نشونت بدم چطور میشه مسیر فایل رو عوض کرد.

04:22.340 --> 04:25.610
یعنی path جایی که فایل ذخیره میشه.

04:25.610 --> 04:29.750
ربطی به inheritance نداره، فقط برای تکمیل کار خوبه بدونی چطور انجامش بدی.

04:29.750 --> 04:32.870
خب، پس می‌بینمت توی ویدیوی بعدی.

04:32.870 --> 04:33.200
باشه؟

04:33.200 --> 04:34.400
خداحافظ تا بعد.

---
