THỰC HÀNH log4net

15 5 0
THỰC HÀNH log4net

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thực Hành Log4net Bài tập 1: 1/ Truy cập trang https://logging.apache.org/log4net/download_log4net.cgi Download Log4net 2.0.8, giải nén file log4net-2.0.8-bin-newkey.zip đĩa C: D:, … 2/ Tạo Console Project 3/ Thực Add Reference vào Project (RC Project, chọn Add Reference…) Kết hình sau: Hoặc chọn TOOLS \ NuGet Package Manager \ Manager NuGet Packages for Solution Chọn Install để cài đặt 4/ Mở AssemblyInfo.cs, thêm dòng lệnh sau: [assembly: log4net.Config.XmlConfigurator(Watch=true)] 5/ Mở App.config Thêm thẻ: (làm thẻ đầu tiên, không bị lỗi đọc file config) Tiếp theo thêm thẻ khác sau thẻ sau: 6/ Tạo Program.cs sau: using using using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; log4net; //thêm dòng khai báo log4net.Config; //thêm dòng khai báo namespace ConsoleApplication1 { class Program { //thêm dòng lệnh để tạo logger private static readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); static void Main(string[] args) { //viết lệnh Main _logger.Info("Bat dau chuong trinh:"); try { string s = "abc"; int i = int.Parse(s); } catch (Exception ex) { _logger.Debug(ex); } _logger.Info("Ket thuc chuong trinh./."); } } } Dịch chạy chương trình Hãy xem file logcuatoi.txt: Bài tập 2: 1/ Download Log4net, giải nén ổ đĩa ,… (tương tự Bài tập 1) 2/ Tạo Windows Form Application Project 3/ Thực Add Reference vào Propject sau: (tương tự Bài tập 1) Right click References, chọn Add Reference … 4/ Mở AssemblyInfo.cs, thêm dòng lệnh sau: [assembly: log4net.Config.XmlConfigurator(Watch=true)] 5/ Mở App.config Thêm thẻ: … // làm thẻ đầu tiên, không bị lỗi đọc file config Tiếp theo thêm thẻ khác sau thẻ sau: 6/ Tạo Program.cs sau: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using log4net; //thêm dòng khai báo using log4net.Config; //thêm dòng khai báo namespace Log_2 { static class Program { // private static readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); _logger.Info("Bat dau chuong trinh:"); Application.Run(new Form1()); } } } 7/ Tạo Form sau: Có Label, Text box (T1, T2, TKQ) , Button Viết Code cho Form Button sau : using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using log4net; //thêm dòng khai báo using log4net.Config; //thêm dòng khai báo namespace Log_2 { public partial class Form1 : Form { //thêm dòng lệnh để tạo logger private static readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //Khai báo biến public double SO1; public double SO2; public double KQ; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //Nút Cộng _logger.Debug("Thuc hien phep cong"); SO1 = Convert.ToDouble(T1.Text); SO2 = Convert.ToDouble(T2.Text); KQ = SO1 + SO2; TKQ.Text = Convert.ToString(KQ); } private void button2_Click(object sender, EventArgs e) { //Nút Trừ _logger.Debug("Thuc hien phep tru"); SO1 = Convert.ToDouble(T1.Text); SO2 = Convert.ToDouble(T2.Text); KQ = SO1 - SO2; TKQ.Text = Convert.ToString(KQ); } private void button3_Click(object sender, EventArgs e) { //Nút nhân _logger.Debug("Thuc hien phep nhan"); try { SO1 = Convert.ToDouble(T1.Text); SO2 = Convert.ToDouble(T2.Text); KQ = SO1 * SO2; TKQ.Text = Convert.ToString(KQ); } catch (Exception ex) { _logger.Error("Xay loi: "+ex); } } private void button4_Click(object sender, EventArgs e) { //Nút Chia _logger.Debug("Thuc hien phep chia"); try { SO1 = Convert.ToDouble(T1.Text); SO2 = Convert.ToDouble(T2.Text); KQ = SO1 / SO2; TKQ.Text = Convert.ToString(KQ); } catch (Exception ex) { _logger.Error("Xay loi: "+ ex); } } private void button6_Click(object sender, EventArgs e) { T1.Text = ""; T2.Text = ""; TKQ.Text = ""; T1.Focus(); } } } private void button7_Click(object sender, EventArgs e) { _logger.Info("Ket thuc chuong trinh./."); Application.Exit(); } Dịch chạy chương trình Hãy xem file Mylog.txt: (sinh viên tìm hiểu …?) 1/ Log4net: LOG4NET thư viện mã nguồn mở cho phép ta tạo nhiều tập tin nhật ký (log) ghi nhận trình chương trình ‘chạy’ Khi sử dụng log4net khơng ảnh hưởng đến việc thực ứng dụng điều quan trọng người bảo trì theo dõi hoạt động ứng dụng Log4net cho phép sử dụng Java 2/ Cấu hình Log4net: cấu hình thực theo liệu XML Được thực tập tin cấu hình: App.config cho Window Form Web.config cho Asp.NET  Thẻ …: thẻ lớn chứa nội dung cấu hình  Thẻ … :  Thẻ … : dùng qui định mức log tham chiếu Appender  Trong thư viện Apache log4net có cung cấp sẵn mức (level) ghi log cho ứng dụng : OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL với ý nghĩa sau: Ưu tiên Loại log OFF FATAL ERROR WARN INFO DEBUG ALL Ghi Không ghi Ghi nhận log loại Fatal (nghiêm trọng) Ghi nhận log loại Fatal, Error Ghi nhận log loại Fatal, Error, Warning Ghi nhận log loại Fatal, Error, Warning, Info Ghi nhận loại Fatal, Error, Warning, Info, debug (mặc định Debug) Ghi nhận tất loại log Ví dụ :  Thẻ …: Thẻ quy định cách thức lưu trữ log, có cách thể hiện: + ConsoleAppender: ghi log cửa sổ lệnh Ví dụ: + FileAppender: ghi log vào tập tin văn (file text) Ví dụ: Path:\mylogfile.txt + RollingFileAppender: ghi log vào tập tin văn cách tuần hoàn, tập tin mylogfile.txt.1, mylogfile.txt.2, …, mylogfile.txt.5, tập tin đạt kích thước 10MB, hỗ trợ ghi file theo ngày tháng, kích thước Ví dụ: + AdoNetAppender: ghi log vào tập tin sở liệu phải tạo trước CSDL bảng ghi liệu (tùy thuộc hệ quản trị CSDL cụ thể, sinh viên tham khảo http://logging.apache.org/log4net/release/configexamples.html) Ví dụ: dùng cho MS SQL Server  Thẻ …: bên thẻ Appender có thẻ Layout để xác định liệu ghi Ví dụ:  Thẻ : dùng khai báo cho Appender biết ghi log, ghi theo từ khóa sau: o %date – Xuất ngày tháng năm theo múi địa phương, định dạng sau: %date{MMMM dd, yyyy HH:mm:ss} o %utcdate - Xuất ngày tháng năm theo múi quốc tế o %exception - Nếu lỗi thông qua, có thêm dịng báo lỗi xảy o %level – Xuất mức log như: DEBUG, INFO, WARN, … o %message – Xuất thông báo cần ghi log o %newline – Thêm dòng (xuống dòng) o %timestamp – Xuất số milliseconds từ lúc ứng dụng bắt đầu o %thread – Xuất tên thread sinh kiện ghi log o %ndc (Nested Diagnostic Contexts)- Xuất ngữ cảnh chẩn đoán lồng o Ngoài cho phép dùng số để qui định độ dài cho liệu (giống C++)  Thẻ : định nghĩa lọc dùng cho Appender Ví dụ: Sv tự tìm hiểu 3/ Cài đặt Log: viết lệnh Program.cs  Khởi tạo Logger: private static readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().Decla ringType);  Xuất nội dung Log: Program.cs đoạn chương trình cần Log (trong code, nơi cần log thêm đoạn code sau đây): _logger.Info(“thông báo); _logger.Debug(“thông báo); _logger.Error(“thông báo); _logger.Fatal(“thông báo); _logger.Warn(“thông báo); //nên dùng Try … Catch Tham khảo thêm trang: https://logging.apache.org/log4net/release/sdk/html/N_log4net_Layout.htm ... XML Đư? ?c th? ? ?c tập tin c? ??u hình: App.config cho Window Form Web.config cho Asp.NET  Th? ?? …: th? ?? lớn chứa nội dung c? ??u hình  Th? ?? …... log4net. Config.XmlConfigurator(Watch=true)] 5/ Mở App.config Th? ?m th? ??: … // làm th? ?? đầu tiên, không bị lỗi đ? ?c file config

Ngày đăng: 05/08/2022, 12:07

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan