Ghi Log Trong Python Bằng File CSV

Hướng dẫn cách ghi log trong python đơn giản bằng file CSV. Bằng cách kết hợp mở và ghi file CSV trong python, bạn sẽ học được cách ghi log vào file CSV bằng phương thức write() trong python sau bài học này.

Ghi log trong python | phương thức write()

Ứng dụng phương mở file, đóng file và ghi file CSV trong python, chúng ta có thể tạo ra một hàm ghi log trong python vào file CSV đơn giản sau đây:

Copy
import osimport datetimedef outfilewrite(log_name): #Tạo đường dẫn thư mục log file log_dir_path='./_logfile' os.makedirs(log_dir_path,exist_ok=True) #Lấy ngày tháng năm tạo log file d = datetime.datetime.now() timestr=d.strftime('%Y%m%d') #Chỉ định tên log file logfile_name= (log_name+"_"+timestr+'.csv') try: #Mở file log outfile=open(os.path.join(log_dir_path,logfile_name),'a+') #Ghi header của file csv vào logfile outfile.write("{},{},{},{}\n".format('No','Work','Result','Detail')) except PermissionError : print("\n Error : Cant open logfile. Please Try again") input(">>") sys.exit() return outfile

Lưu ý là bạn cũng có thể chỉ định file log với đuôi .txt thay cho .csv ở trên. Tuy nhiên khi đọc file log thì định dạng CSV có thể nhìn rõ các cột với nội dung file log đã ghi vào, nên Kiyoshi khuyên bạn dùng định dạng .csv hơn trong chương trình này.

Lại nữa, khi tạo hàm trên chúng ta đã sử dụng các kiến thức mà bạn đã học tại các bài viết sau đây:

  • os.makedirs : Tạo thư mục trong python
  • datetime.datetime.now() : Lấy thời gian hiện tại trong python
  • strftime():Chuyển datetime sang string trong python
  • write(" ".format()):Định dạng chuỗi trong python bằng phương thức format

Cách ghi log trong python bằng hàm vừa tạo

Ví dụ, chúng ta có một thư mục có cấu trúc sau:

|data/ |--dir1 |--make_log.py

Để sử dụng hàm, trước tiên chúng ta chạy hàm và gán kết quả của hàm là một file object vào một biến bất kỳ.

Copy
logfile=outfilewrite("new_log")

Khi đó, một file log có tên dạng new_log_yyyymmdd.csv sẽ được tạo ra trong thư mục _logfile như sau:

|data/ |--dir1 |--_logfile | |--new_log_20210518.csv |--make_log.py

Sau đó, tại bất cứ vị trí nào trong chương trình mà bạn cần ghi log trong python, hãy dùng phương thức write() với biến đó, bằng nhiều kiểu ghi log sau đây:

Ghi log nội dung tùy ý vào một dòng trong file log:

Copy
logfile.write("log line 1\n")

Ghi log nội dung vào các cột khác nhau trong file log:

Copy
logfile.write("{},{},{}\n".format('1','Creat log file','Done'))logfile.write("{},{},{},{}\n".format('2','Write log','Eror','PermissionError'))

Kết quả:Ghi log trong python

Bạn có thể dùng try catch với Exception trong python để lấy lỗi trả về từ python và ghi lỗi đó vào file log như sau:

Copy
try: #chạy xử lý log_conttent1 = ["1","Creat Log file","Done",""]except Exception as e: log_conttent1 = ["1","Creat Log file","Error",e]log_conttent.append(log_conttent1)

Trong đó, e chính là nội dung lỗi mà Python trả về nếu như xử lý bị lỗi khi chạy.

Ngoài ra bạn cũng có thể lưu trữ nội dung cần ghi vào file log dưới dạng list và sau đó ghi vào log file như sau:

Copy
log_conttent=[]#chạy xử lý 1log_conttent1 = ["1","Creat Log file","Error",""]log_conttent.append(log_conttent1)#chạy xử lý 2log_conttent2 = ["2","write log file","Error","PermissionError"]log_conttent.append(log_conttent2)#chạyxử lý 3log_conttent3 = ["3","write log","Done",""]log_conttent.append(log_conttent3)#...#Sau khi hoàn thành các xử lý, ghi các nội dung log vào file logfor log in log_conttent: logfile.write("{},{},{},{}\n".format(log[0],log[1],log[2],log[3]))logfile.close()

Kết quả:Ghi log trong python

Sau khi hoàn tất quá trình ghi log vào file CSV rồi, đừng quên sử dụng logfile.close() để đóng file log nhé.

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn về cách ghi log trong python bằng file CSV rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/csv-excel-json-xml-pdf/ghi-log-trong-python/

Từ khóa » Hàm Log Trong Python