How to be a guru
Tiếng Việt
Tiếng Việt
  • Xin chào
  • Giới thiệu
    • Hướng dẫn
    • Mục tiêu
    • Liên hệ
  • Hành chính và kế hoạch *
    • Kỹ năng văn phòng
    • Quy định và Chính sách
    • Xây dựng văn hóa Công ty
      • Thương hiệu và hình ảnh
      • Cuộc thi hằng năm
      • Team building
    • Quản lý hồ sơ
    • Biểu mẫu
      • Cho công ty
        • Quyết định, thông báo
        • Phiếu thu, phiếu chi
      • Cho nhân viên
        • HDLĐ
        • Đề xuất tăng lương
        • Yêu cầu mua sắm
    • Yêu cầu mua sắm
      • Đồng phục
      • Trang thiết bị làm việc
    • Quản lý tài sản
      • Hữu hình
      • Vô hình
    • Quản lý HD kinh tế
      • Hợp đồng phân phối
    • Lộ trình
    • Chứng chỉ về quản lý hành chính
  • Nhân sự *
    • Quản lý lương thưởng
      • Lương 3P
    • Tuyển dụng
      • Đăng tuyển
      • Phỏng vấn
      • Hợp đồng
      • ==> Quy trình tuyển dụng
    • Quản lý nhân sự
      • Quản lý danh sách nhân viên Công ty
      • Quản lý HDLĐ
    • Lộ trình
    • Chứng chỉ về nhân sự
  • Kế toán và kiểm toán *
    • Kỹ năng văn phòng
    • Thanh toán định kỳ
    • Báo cáo
      • Thuế và BHXH
        • Báo cáo thuế
          • Báo cáo tài chính
          • Hóa đơn điện tử
        • Thuế TNCN
          • Mã số thuế
      • BHXH và BHTN
      • Báo cáo thu chi và quỹ tiền mặt
    • Công cụ hỗ trợ
      • Ngân hàng và Internet Banking
      • Website cơ quan thuế và BHXH
      • Các cổng thanh toán
    • Lộ trình
    • Chứng chỉ về kế toán và kiểm toán
  • CNTT & Lập trình viên
    • IT staff *
      • Khái niệm cần biết
        • Cổng thanh toán
          • (Top n)
          • [0-9]
          • A
          • B
          • C
          • D
          • E
          • F
          • G
          • I
          • L
          • M
          • O
          • P
          • Q
          • S
          • W
          • Z
        • Dịch vụ gởi email
        • Dịch vụ hỗ trợ khách hàng
        • Tên miền và máy chủ
          • Tên miền
          • Máy chủ
        • Bảo trì hệ điều hành
        • Email
          • Cấu hình mail server
            • Google GSuite (Workspace)
            • Mail Migadu
          • Tạo email & alias
            • Tạo non-gmail
        • FPT
        • Soạn thảo trực tuyến
          • Làm việc với Google Drive
          • Làm việc với GitBook
        • Số điện thoại ảo
        • Điện toán đám mây
        • Networking
        • CDN
      • Danh mục và quy trình
        • Todo #1 - Cài đặt máy chủ
          • 1 - Lựa chọn nhà cung cấp
          • 2 - Chọn cấu hình máy chủ
          • 3 - Đăng ký mua máy chủ
          • 4 - Cài đặt máy chủ
            • 4.1 - Đăng nhập
            • 4.2 - Kiểm tra cấu hình đã mua
            • 4.3 - Cấu hình services
              • Local Server
              • Thêm Roles và Features
              • Lưu ý
            • 4.4 - Cấu hình bảo mật
              • Cho phép các Port qua Firewall
              • Thay đổi Port cho RDC
              • Bật và cài Windows Updates
            • 4.5 - Cài đặt phần mềm
              • Kho ứng dụng và downloads
              • Phần mềm thiết yếu
              • Phần mềm chuyên dụng
                • Cấu hình SQL Server
                • Cấu hình IIS
            • 4.6 - Tạo tài khoản admin
        • Todo #2 - Chuyển đến máy chủ mới
          • 1 - Đăng nhập vào các tài khoản
          • 2 - Backup dữ liệu máy cũ
            • 2.1 - Chuẩn bị
            • 2.2 - Export & Import IIS websites
              • 2.2.1 - Chuyển cấu hình IIS
              • 2.2.2 - Chuyển dữ liệu
            • 2.3 - Backup database
            • 2.4 - Transfer hay Upload
          • 3 - Restore dữ liệu trên máy chủ mới
            • Đổi IP của websites
          • 4 - Xóa và đóng servers
          • Một số lưu ý
          • Checklist
        • Todo #3 - Sao lưu dữ liệu *
          • Sao lưu source code *
            • Checklist
          • Sao lưu database *
            • Checklist
          • Sao lưu website
            • Checklist
      • Lộ trình
        • Nhân viên IT là gì?
        • Cơ bản về hỗ trợ CNTT
          • 1 - Cơ bản về phần cứng máy tính
            • Linh kiện máy tính
            • Thiết bị ngoại vi
            • Xử lý sự cố phần cứng
          • 2 - Cơ bản về phần mềm máy tính
            • Hệ điều hành
            • Ứng dụng
            • Xử lý sự cố phần mềm
          • 3 - Cơ bản về mạng
            • Cơ bản về mạng
            • Giao thức và cấu trúc
            • Xử lý sự cố mạng
        • 2 - Hệ điều hành
          • Windows
            • Cài đặt và cấu hình
            • Hệ thống tập tin
            • Quản lý hệ thống
          • Linux *
          • MacOS *
        • 3 - Mạng lưới (Networking)
          • Giao thức mạng
            • HTTP
            • FTP
            • TCP/IP
          • Công cụ mạng
            • PING
            • TRACEROUTE
            • NETSTAT
        • 4 - Xử lý sự cố phần mềm
          • Chẩn đoán
            • Phân tích mã lỗi
            • Giải thích tệp nhật ký
          • Công cụ sửa chữa
            • Dọn dẹp đĩa
            • Sửa chữa sổ đăng ký
            • Công cụ phục hồi dữ liệu
          • Hệ thống bán vé
            • JIRA Service Desk
            • Zendesk
            • ServiceNow
        • 5 - Quản lý cơ sở dữ liệu
          • SQL
            • Truy vấn SQL
            • Xử lý dữ liệu
            • Quản lý cơ sở dữ liệu
          • MongoDB *
        • 6 - An ninh mạng
          • Các khái niệm cơ bản
            • Tính bảo mật, tính toàn vẹn, tính khả dụng
            • Mối đe dọa, sự dễ bị tổn thương, rủi ro
          • Công nghệ bảo mật
            • Firewall
            • Hệ thống phát hiện xâm nhập
            • Antivirus
        • 7 - Điện toán đám mây
          • Khái niệm về đám mây
            • Đám mây công cộng, riêng tư, kết hợp
            • IaaS, PaaS, SaaS
          • Nhà cung cấp đám mây
            • AWS
            • Azure
            • GCP
        • 8 - Ảo hóa
          • Virtual Machines (Máy ảo)
            • VMware
            • Oracle Virtualbox
          • Containers
            • Docker
            • Kubernetes
        • 9 - Bảo trì phần mềm
          • Cập nhật và bản vá lỗi
            • System updates
            • Bản vá ứng dụng (Application patching)
          • Vòng đời phần mềm (Software Lifecycle)
            • Phát triển (Development)
            • Triển khai (Deployment)
            • Nghỉ hưu (Retirement)
        • 10 - Dịch vụ khách hàng (Customer Service) *
          • Kỹ năng mềm
            • Kỹ năng giao tiếp
            • Kỹ năng giải quyết vấn đề
          • Quản lý dịch vụ CNTT
            • Thỏa thuận mức dịch vụ
            • Quản lý sự cố
            • Quản lý thay đổi
        • 11 - Công cụ phần mềm
          • Công cụ quản lý dịch vụ CNTT
            • Biện pháp khắc phục ITSM
            • Quản lý dịch vụ ManageEngine
            • Bàn dịch vụ SolarWinds
          • Công cụ hỗ trợ từ xa
            • TeamViewer
            • Chrome Remote Desktop
            • AnyDesk
        • 12 - IT Documentation
          • Cơ bản về tài liệu
            • Viết tài liệu hiệu quả
            • Công cụ tài liệu
          • Các loại tài liệu CNTT
            • Hướng dẫn sử dụng
            • Hướng dẫn vận hành
      • Chứng chỉ
      • CloudFlare có làm ảnh hưởng đến tốc độ load của website
      • Page 1
    • DBA *
      • Làm việc với SQL Server
      • SQL Server Profiler, Statistics
      • English Words - Dictionary
      • Password, Hash and Salt
      • Price Model (Mô hình bảng giá)
      • Formater
    • Front-end *
      • HTLM & CSS
      • JavaScript
      • jQuery
      • Các frameworks của JavaScript
      • Các Front-end frameworks
      • Kinh nghiệm với CSS Preprocessors
      • Kinh nghiệm với RESTful Services và APIs
      • Thiết kế Responsive và Thiết kế Mobile
      • Cross-Browser Development
      • Front-end Developer cần biết Testing và Debugging
      • Các hệ thống quản lý Git và Version dành cho Front-end developer
      • Các kĩ năng giải quyết vấn đề
      • BOOTSTRAP
      • Kiến thúc chung cần có
    • Back-end *
      • Căn bản
        • Các mô hình
          • MVC
        • Logging
        • SMTP
        • Misc
          • Currency & exchange rates
          • Timezone & Countries
        • camelcase
      • Nâng cao
        • Maps & GPS
        • Server streaming
        • SpeechToText & TextToSpeech
        • Push Notification
          • Apple with iOS
          • Android device
        • Login Integration with 3rd party
        • Payment Notification
        • Language Translation
        • Text Comparison
        • Security Audit
        • encrypt và hash
          • hashid()
          • public & private keys
      • Tổng quan
        • Swagger & tool tương tự
        • Debug proxy
          • Charles Proxy
        • GitBook
          • Làm sao cấu hình authenticated *
        • Tra ngôn ngữ lập trình
      • Lập trình BE với .NET
        • IDE
          • Microsoft Studio
            • GuNet
          • Google Console
            • Google: Credentials & OAuth consent
        • Sử dụng frameworks
        • Log4net
        • Leaflet GPS
        • Credentials và OAuth
    • DevOps
      • DevOps là gì?
      • 1 - Học một ngôn ngữ (Learn a Language)
      • 2 - Hệ điều hành (Operating system)
      • 3 - Kiến thức thiết bị đầu cuối (Terminal Knowledge)
      • 4 - Hệ thống kiểm soát phiên bản(Version Control Systems)
      • 5 - Repo Hosting Services (Dịch vụ lưu trữ kho lưu trữ)
      • 7 - Containers
      • 8 - X là gì và cách thiết lập như thế nào (Setting up ________)
      • 9 - Giao thức mạng (Networking Protocols)
      • 10 - Nhà cung cấp đám mây (Cloud Providers)
      • 11 - Không có máy chủ (Serverless)
      • 12 - Provisioning
      • 13 - Quản lý cấu hình (Configuration Management)
      • 14 - CI/CD tools
      • 15 - (Quản lý bí mật) Secret Management
      • 16 - Giám sát cơ sở hạ tầng (Infrastructure Monitoring)
      • 17 - Quản lý Nhật ký (Logs Management)
      • 18 - Phối hợp container (Container Orchestration)
      • 19 - Giám sát ứng dụng (Application Monitoring)
      • 20 - Artifacts
      • 21 - GitOps
      • 22 - Service Mesh
      • 23 - Mẫu thiết kế đám mây (Cloud Design Patterns)
      • Chứng chỉ về DevOps
      • Luyện thi chứng chỉ ở Việt Nam
      • FAQs
    • Full stack *
    • AI Engineer *
    • Data Analyst *
    • AI & Data Scientist *
    • Mobile dev *
      • Root & Jailbreak
      • Android
        • live and dev environment on android studio
      • iOS
      • Lập trình mobile app
        • Ứng dụng chạy ngầm
        • Live Stream
    • PostgreSQL *
    • Blockchain *
    • QA *
    • Software Architect *
    • Cyber Security *
    • UX Design *
    • Product Manager *
    • Developer Relations *
    • IT Business Analyst
      • IT BA là gì?
      • Công việc chính của IT BA
      • Kỹ năng cần thiết cho một nhà phân tích kinh doanh CNTT
      • Chứng chỉ hỗ trợ nghề IT BA
      • Lộ trình phát triển
      • Các giai đoạn
      • Lộ trình
        • (Hình lộ trình)
        • 1 - Giới thiệu nghề IT BA
          • Khám phá vai trò của Nhà phân tích kinh doanh
          • Trách nhiệm chính của một Nhà phân tích kinh doanh
          • Kỹ năng cần thiết cho một Nhà phân tích kinh doanh
          • Giới thiệu về công cụ BA
          • Hiểu về quy trình kinh doanh
          • Phân tích các bên liên quan
        • 2 - Hệ thống kinh doanh và phân tích
          • Lý thuyết hệ thống
          • Ứng dụng lý thuyết hệ thống vào quy trình kinh doanh
          • Kỹ thuật phân tích hệ thống
          • Mô hình hóa dữ liệu và thiết kế hệ thống kinh doanh
          • Cải tiến quy trình kinh doanh
          • Triển khai các giải pháp CNTT
        • 3 - Vòng đời phát triển phần mềm (SDLC)
          • Giới thiệu về SDLC
          • Thu thập và phân tích yêu cầu
          • Thiết kế phần mềm
          • Coding
          • Testing (kiểm thử)
          • Triển khai
        • 4 - Cơ bản về quản lý dự án
          • Xác định mục tiêu và mục đích của dự án
          • Yêu cầu của dự án
          • Phân tích rủi ro dự án
          • Quản lý vòng đời dự án
          • Đảm bảo và kiểm soát chất lượng
          • Giám sát và Kiểm soát Dự án
        • 5 - Phân tích yêu cầu
          • Kỹ thuật khai thác
          • Tài liệu yêu cầu
          • Các trường hợp sử dụng
          • Xác nhận và ưu tiên yêu cầu
          • Yêu cầu chức năng và phi chức năng
          • Tạo Tài liệu Yêu cầu Kinh doanh (BRD)
        • 6 - Phân tích dữ liệu
          • Hiểu các thành phần dữ liệu
          • Kỹ thuật sắp xếp và làm sạch dữ liệu
          • Phân tích dữ liệu cơ bản
          • Kỹ thuật trực quan hóa dữ liệu
          • Phân tích dữ liệu lớn
          • Quản lý dữ liệu
        • 7 - Kiến thức CNTT
          • Kiến thức cơ bản về ngôn ngữ lập trình
          • Cơ sở hạ tầng CNTT
          • Hiểu biết về cơ sở dữ liệu
          • Kiến thức về dịch vụ Web
          • Sự quen thuộc với Bảo mật CNTT
          • Phần mềm và phần cứng
        • 8 - Học công cụ Business Intelligence
          • Giới thiệu về MS Excel
          • Power BI
          • Tableau
          • Đối tượng kinh doanh SAP
          • Chiến lược vi mô
          • Qlik
        • 9 - Hiểu về Agile và Scrum
          • Cơ bản về Agile
          • Nguyên tắc Agile
          • Vai trò của Nhà phân tích kinh doanh trong dự án Agile
          • Cơ bản về Scrum
          • Câu chuyện người dùng
          • Lập kế hoạch và đánh giá Sprint
        • 10 - UML (Ngôn ngữ mô hình hóa thống nhất)
          • Cơ bản về UML
          • Use Case Diagrams
          • Biểu đồ hoạt động
          • Biểu đồ tổng quan tương tác
          • Biểu đồ trình tự
          • Biểu đồ lớp
        • 11 - SQL (Ngôn ngữ truy vấn có cấu trúc)
          • Cơ bản về SQL
          • Các hoạt động Tạo, Đọc, Cập nhật và Xóa (hoạt động CRUD)
          • Hoạt động xử lý dữ liệu
          • Các khái niệm SQL nâng cao
          • SQL để phân tích dữ liệu
          • Dịch vụ báo cáo SQL Server (SSRS)
        • 12 - CNTT và Chiến lược kinh doanh
          • Điều chỉnh Chiến lược CNTT với Mục tiêu Kinh doanh
          • Quản trị CNTT
          • Lập kế hoạch chiến lược
          • Ngân sách và mua sắm CNTT
          • Đánh giá hiệu suất
          • Quản lý thay đổi
  • Quảng cáo và bán hàng *
    • Todo
      • ⇒ Todo #0 - Các công việc hàng ngày
    • Quảng cáo (Marketing)
      • 1 - Digital Marketing
        • 1.1 - Content Marketing
          • 1.1.1 - Website và profile
            • Giới thiệu tính năng sản phẩm
          • 1.1.2 - Hình ảnh, đồ họa, banner
          • 1.1.3 - Blog
            • Todo #1.1.3.1 - Tổng hợp danh sách về nội dung website
          • 1.1.4 - Template
          • 1.1.5 - Video
          • ⇒ Tạo reels (video ngắn)
          • ⇒ eBook & brochure
          • ⇒ Case study
          • ⇒ Podcast
          • (Email Marketing)
          • Tham khảo về Content Marketing
            • Kỹ năng Content Marketer
            • Quy trình triển khai
        • 1.2 - Social Media Marketing (SMM)
          • 1.2.1 - Phân tích đối thủ
            • ⇒ Đăng ký newsletter ở website đối thủ
          • 1.2.2 - Seeding Marketing
            • 1.2.2.1 - Tạo tài khoản email
            • 1.2.2.2 - Tạo tài khoản mạng xã hội
              • Todo #1.2.2.2.1 - Danh sách nội dung seeding
              • Todo #1.2.2.2.2 - Danh sách mạng xã hội
            • 1.2.2.3 - Coupon
              • Todo #1.2.2.3.1 - Danh sách website về coupon
            • 1.2.2.4 - Forum
              • ⇒ Tìm kiến các diễn đàn
              • ⇒ Tham gia vào các diễn đàn
          • 1.2.3 - Viral content
            • ⇒ Bắt trend và dự đoán
            • Tham khảo về Viral Content
              • Viral content là gì?
          • 1.2.4 - Influencer Marketing
            • Todo #1.2.4.1 - Danh sách tìm và trao đổi với KOL
              • Tham khảo danh sách KOL
            • Tham khảo danh sách KOL
              • Tại Việt Nam
          • Todo #1.2.5 - Quản lý, chăm sóc social media
          • Công cụ hỗ trợ
            • 1 - Facebook
            • 2 - Zalo
            • 3 - Linkedin
            • 4 - Telegram
            • 5 - Twitter
            • 6 - Tiktok
            • 7 - Whatsapp
            • 8 - Instagram
            • Danh sách mạng xã hội khác
        • 1.3 - Search Engine Marketing (SEM)
          • 1.3.1 - Phân tích website đối thủ
          • 1.3.2 - Search Engine Optimization (SEO)
            • 1.3.2.1 - Thiết kế logo và banner
            • Todo #1.3.2.2 - Viết nội dung và đăng bài viết
            • Todo #1.3.2.3 - Tìm và phân tích từ khóa (keywords)
            • 1.3.2.3 - Tối ưu hóa nội dung
            • 1.3.2.4 - Đi backlink
            • Tự tương tác hàng ngày
            • Onpage, Offpage and Technical SEO
          • Pay-Per-Click Marketing (PPC)
            • ⇒ Google Adwords & Adsense
            • ⇒ Facebook Ads
          • In-app & banner ads
          • Công cụ hỗ trợ
            • WordPress và Plugin
            • Làm việc với Google
            • Các app hay dùng cho SEO
            • (Khác)
        • 1.4 - Email Marketing
          • 1.4.1 - Các khái niệm
          • 1.4.2 - Thu thập email
            • Todo #1.4.2.1 - Danh sách email
          • 1.4.3 - Chiến dịch
            • Todo #1.4.3.1 - Danh sách chiến dịch, chương trình khuyến mãi
          • 1.4.4 - Nội dung
            • Todo #1.4.4.1 - Danh sách nội dung chiến dịch email marketing
          • Công cụ hỗ trợ
        • 1.5 - SMS Marketing
          • SMS Branding
            • ⇒ Tìm nhà cung cấp SMS
            • ⇒ Soạn tin
          • Công cụ hỗ trợ
            • Tổng đài tự động
        • 1.6 - Mobile Marketing
          • 1.6.1 - Upload các APK file
            • Todo #1.6.1.1 - Danh sách Play Store alternatives
          • 1.6.3 - Thông báo đẩy (push notification)
            • Todo #1.6.3.1 - Danh sách nội dung thông báo
            • ⇒ Tạo sự kiện
            • Tham khảo
          • 1.6.4 - Tăng lượt đánh giá
            • Todo #1.6.4.1 - Danh sách nội dung đánh giá
          • ⇒ Tăng số lượng download
          • Công cụ hỗ trợ
        • 1.7 - Press Release Marketing
          • 1.7.1 - Báo chí
            • Todo #1.7.1.1 - Danh sách tên & báo giá báo lớn Việt Nam
        • 1.8 - Affiliate Marketing
          • Sponsor marketing
            • ⇒ Tìm danh sách để tài trợ
          • distributor, reseller/affiliate,
            • ⇒ Tạo chính sách commission
            • Danh sách
          • Mua bán trao đổi logo, banner, post
            • Tìm danh sách
        • Tham khảo về Digital Marketing
          • Những kỹ năng cho digital markter
          • Tối ưu hóa website và thương mại điện tử
          • Làm việc với Google Analytics
          • Chiến lược cho Digital Marketing
      • 2 - Truyền thống
        • 2.1 - Hội thảo, sự kiện
          • Tìm kiếm và tìm hiểu
          • Tham khảo (nội dung, giá cả, địa điểm)
          • Tham gia
        • 2.2 - Danh hiệu, kỷ niệm chương
        • 2.3 - Truyền hình
        • 2.4 - Tài trợ và thiện nguyện
          • Todo #2.4.1 - Danh sách CLB
          • Todo #2.4.2 - Liên hệ CLB
      • ⇒Thảo luận & Báo cáo
    • Kinh doanh (Sale)
      • 1 - Phân tích thị trường
        • Todo #1.1 Kế hoạch phân tích thị trường
        • Todo #1.2 - Tạo danh sách khách hàng tiềm năng
          • Liên lạc qua telesales hoặc chat
          • Liên lạc qua email marketing
          • Danh sách khách hàng tiềm năng
        • 1.3 - Tạo danh sách đối thủ
          • Todo #1.3.1 - Phân tích đối thủ
        • 1.4 - Khảo sát
          • Đăng bài khảo sát
          • Phân tích dữ liệu
        • Todo #1.4 - Phân tích sản phẩm
          • Phân tích SWOT
        • 1.5 - Dự trù ngân sách
        • 1.6 - Công cụ hỗ trợ
      • Todo #2 - Giới thiệu và tư vấn
        • Todo #2.1 - Tìm và lập danh sách khách hàng
          • Todo #2.1.1 - Danh sách group mạng xã hội
          • Todo #2.1.2 - Danh sách khách hàng tiềm năng
          • Todo #2.1.3 Danh sách khách hàng quan
        • Todo #2.2 - Quy trình demo
        • 2.3 - Kịch bản
          • Todo #2.3.1 Kịch bản tư vấn Telesales
          • Todo #2.3.2 Kịch bản tư vấn SMS
          • Todo #2.3.3 Kịch bản gửi email trực tiếp
      • Todo #3 - Hợp đồng
        • Todo #3.1 - Hợp đồng mẫu
        • Todo #3.2 - Bảng báo giá
      • ⇒ Thảo luận & Báo cáo
    • Tham khảo
  • Chăm sóc khách hàng *
    • Khái niệm
      • Nhúng script vào website
      • Tự động gởi nội dung chát
      • AI và Macro (trả lời tự động)
      • Tổng đài tự động
    • Xây dựng nội dung
      • Hướng dẫn sử dụng (guide)
      • Nội dung hỗ trợ (support)
      • Tạo FAQs
      • Tạo forum
    • Công cụ hỗ trợ
    • Hỗ trợ học thuật
    • Tham khảo
    • PHÒNG HỌC THUẬT
      • Công việc và nhiệm vụ
        • Bảo đảm chất lượng sản phẩm (về học thuật)
        • Soạn và tạo ngân hàng câu hỏi
        • Thống kê và báo cáo
        • Feedback và hỗ trợ học thuật
        • Chăm sóc trang WordPress cho chuyên môn
        • Bảo đảm và duy trì có chứng chỉ chuyên môn
      • Tham khảo
  • Đào tạo và huấn luyện *
    • Khái niệm
      • Tinh thần Agile Scrum
    • Kiểm tra năng lực định kỳ
      • Tiếng Anh
      • IQ/EQ
    • Chứng chỉ quốc tế
  • THAM KHẢO
    • Liên kết khác
  • Nhật ký thay đổi
Powered by GitBook
On this page
Export as PDF
  1. CNTT & Lập trình viên
  2. Back-end *
  3. Lập trình BE với .NET

Log4net

PreviousSử dụng frameworksNextLeaflet GPS

Log4net là một công cụ giúp người lập trình ghi lại những thông tin trong lúc chạy ứng dụng. Trong trường hợp ứng dụng của bạn có lỗi mà vẫn không tìm được nguyên nhân, log4net có thể là vị cứu tinh để giúp bạn xác định nơi gây lỗi.

Ngoài ra, Log4net còn có thể thay đổi trạng thái log lúc chương trình chạy mà không cần ngừng chương trình. Bên cạnh đó, khi sử dụng log4net sẽ không ảnh hưởng đáng kể đến performance của ứng dụng, log4net còn được thiết kế với tính flexibility rất cao, chúng ta có thể mở rộng và thêm thắt những thứ mình muốn vào thư viện log4net, chẳng hạn như cách thức log, định dạng log, … Có rất nhiều cách để Appender, tuy nhiên ta quan tâm 2 cách hay dùng nhất là: +Log ra File (trong đó RollingFileAppender được dùng nhiều nhất) +Log ra Database (ở đây sử dụng MS SQL Server)

Trong bài viết này mình sẽ giới thiệu cách sử dụng Log4net bằng 2 cách trên, nhưng trước tiên mình sẽ làm 1 ví dụ console đơn giản sử dụng log4net. Viết log trong 1 chương trình console Các bước như sau: + Download log4net từ (nên chọn bản mới nhất). + Mở visual studio và tạo một ứng dụng console + Thêm log4net.dll vào reference trong thư mục vừa tải về.( \bin\net\*\release\log4net.dll) + Viết hàm main như sau:

1

using System;

2

using System.Collections.Generic;

3

using System.Linq;

4

using System.Text;

5

using log4net;

6

7

namespace DemoLog4Net

8

{

9

class Program

10

{

11

protected static readonly ILog log = LogManager.GetLogger(typeof(Program));

12

static void Main(string[] args)

13

{

14

log4net.Config.BasicConfigurator.Configure();

15

log.Debug("Debug level");

16

log.Info("Info level");

17

log.Warn("Ware level");

18

log.Error("Error level");

19

log.Fatal("Fatal level");

20

Console.ReadLine();

21

}

22

}

23

}

Kết quả:

• Có 7 cấp độ log như hình bên dưới đây:

Ví dụ: Nếu bạn tạo 1 đối tượng logger và gán nó với cấp độ INFO. Nên khi bạn gọi phương thức sau:

1

Logger.Info("message");

2

Logger.Debug("message");

3

Logger.Warn("message");

1

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]

- Cấu hình log4net trong web.config - Đăng ký log4net trong Application_Start() trong Global.asax

1

void Application_Start(object sender, EventArgs e)

2

{

3

log4net.Config.XmlConfigurator.Configure();

4

}

- Sử dụng: + Using namespace log4net ở những nơi bạn cần sử dụng + Tạo thuộc tính sau vào các lớp cần sử dụng

1

private static readonly ILog log = LogManager.GetLogger(typeof(TênLớpCủaBạn).Name);

Hoặc cách tổng quát hơn là:

1

private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

+ Tại những nới cần log thì thêm đoạn code sau

1

log.Info("log.Info");

2

log.Debug("log.Debug");

3

log.Error("log.Error");

Trường hợp 1: Log ra file Cấu hình trong web.config

1

<configSections>

2

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

3

</configSections>

4

<log4net>

5

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">

6

<file value="App_Data/log.txt" />

7

<appendToFile value ="true" />

8

<rollingStyle value="Size"/>

9

<maximumFileSize value="1MB"/>

10

<maxSizeRollBackup value ="10" />

11

<staticLogFileSize value="true"/>

12

<layout type="log4net.Layout.PatternLayout">

13

<conversionPattern value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n">

14

</layout>

15

</appender>

16

<root>

17

<level value="DEBUG"/>

18

<appender-ref ref="RollingFileAppender"/>

19

</root>

20

</log4net>

Giải thích

i. <file value=”App_Data/log.txt” />

- Đường dẫn file ta ghi thông tin lỗi

ii. <maxSizeRollBackup value =”10″/> - Ta sử dụng RollingFileAppender, nếu kích thước file vượt quá quy định thì nó sẽ đổi tên file cũ và ghi vào file mới. Tổng số file tối đa ở đây mình do mình config (ở đây là 10), các file cũ nhất sẽ bị xóa đi khi số lượng file vượt quá số lượng config (ở đây là 10)

iii. <maximumFileSize value=”1MB”/> - Kích thước tối đa của 1 file log (ở đây mình config là 1 Megabyte)

iv. <layout></layout - Định dạng của thông tin log cần ghi ra file kèm theo một số thông tin, bạn có thể tùy biến sao cho thông tin dễ nhìn nhất, ở đây tôi config value=”%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n”>

Trường hợp 2: Log ra database (MS SQL Server) Cấu trúc bảng cần định nghĩa (tùy vào việc cần lưu cái gì mà mình định nghĩa bảng này sao cho hợp lý, tuy nhiên bảng sau chứa các thuộc tính cơ bản cho việc log.

1

CREATE TABLE tblLog (

2

[Id] [int] IDENTITY (1, 1) NOT NULL,

3

[Date] [datetime] NOT NULL,

4

[Thread] [varchar] (255) NOT NULL,

5

[Level] [varchar] (50) NOT NULL,

6

[Logger] [varchar] (255) NOT NULL,

7

[Message] [varchar] (4000) NOT NULL,

8

[Exception] [varchar] (2000) NULL

9

)

Cấu hình trong web.config

1

<configSections>

2

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

3

</configSections>

4

5

<log4net>

6

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

7

<bufferSize value="1" />

8

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

9

<connectionString value="Data Source=.;Initial Catalog=Log4Net;Persist Security Info=True;User ID=sa;Password=xxxxxx"/>

10

<commandText value="INSERT INTO tblLog ([Date],[Thread],[Level],[Logger],[Message],[Exception) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />

11

<parameter>

12

<parameterName value="@log_date" />

13

<dbType value="DateTime" />

14

<layout type="log4net.Layout.RawTimeStampLayout" />

15

</parameter>

16

<parameter>

17

<parameterName value="@thread" />

18

<dbType value="String" />

19

<size value="255" />

20

<layout type="log4net.Layout.PatternLayout">

21

<conversionPattern value="%thread" />

22

</layout>

23

</parameter>

24

<parameter>

25

<parameterName value="@log_level" />

26

<dbType value="String" />

27

<size value="50" />

28

<layout type="log4net.Layout.PatternLayout">

29

<conversionPattern value="%level" />

30

</layout>

31

</parameter>

32

<parameter>

33

<parameterName value="@logger" />

34

<dbType value="String" />

35

<size value="255" />

36

<layout type="log4net.Layout.PatternLayout">

37

<conversionPattern value="%logger" />

38

</layout>

39

</parameter>

40

<parameter>

41

<parameterName value="@message" />

42

<dbType value="String" />

43

<size value="4000" />

44

<layout type="log4net.Layout.PatternLayout">

45

<conversionPattern value="%message" />

46

</layout>

47

</parameter>

48

<parameter>

49

<parameterName value="@exception" />

50

<dbType value="String" />

51

<size value="2000" />

52

<layout type="log4net.Layout.ExceptionLayout" />

53

</parameter>

54

</appender>

55

<root>

56

<level value="DEBUG"/>

57

<appender-ref ref="AdoNetAppender"/>

58

</root>

59

</log4net>

Giải thích i. <bufferSize value=”1″/> - Log vào Database theo từng batch, nếu test thì ta nên để giá trị = 1 vì nếu để 100 thì phải có 100 lỗi ,nó mới log 1 lần dẫn đến nhầm lẫn tưởng là log không chạy.

ii. <connectionType> - Kết nối tới loại csdl cần lưu trữ (SQL Server hoặc Oracle, MySql)

iii. <connectionString> - Chuỗi kết nối tới csdl bạn cần lưu thông tin log - Nếu trong web.config của bạn đã có connectionString rồi thì ta chỉ cần gán tên của nó tại đây: <connectionStringName value=” ” />

iv. <commandText></ commandText> - Câu lệnh hoặc stored procedure dùng cho việc insert tới Database

v. <parameter></parameter>

- Tham số cung cấp cho câu lệnh hoặc stored procedure insert, chứa tên, loại dữ liệu, định dạng thông tin cần log.

Phương thức đầu tiên, level của phương thức Info() bằng với level được gán cho logger nên nó hiện thị “message”. Phương thức thứ 2, level của phương thức Debug () nhỏ hơn level được gán cho logger nên yêu cầu bị từ chối và nó không hiện thị message. Tương tự bạn dễ dàng biết được kết quả của phương thức thứ 3 rồi phải không . All: cho phép tất cả các yêu câu, OFF: từ chối tất cả các yêu cầu. Bây giờ, mình sẽ giới thiệu cách sử dụng log4net trong ứng dụng web application Các bước cơ bản: - Download log4net về, add reference vào ứng dụng của mình. - Cấu hình file AssemblyInfo.cs

vi. <root></root> - Thiết lập level Lưu ý: Đối với trường hợp là winform application cũng có cách làm gần tương tự, thay vì config trong web.config thì mình sẽ phải config trong App.config. Link tham khảo:

http://logging.apache.org/log4net/download.html
http://logging.apache.org/log4net/release/config-examples.html
http://www.codeproject.com/Articles/140911/log4net-Tutorial