Hướng dẫn log file python

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:

import os
import datetime
def outfilewrite(log_name):

log_dir_path='./_logfile'
os.makedirs(log_dir_path,exist_ok=True)


d = datetime.datetime.now()
timestr=d.strftime('%Y%m%d')


logfile_name= (log_name+"_"+timestr+'.csv')
try:

outfile=open(os.path.join(log_dir_path,logfile_name),'a+')


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ỳ.

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:

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

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

logfile.write("{},{},{}\n".format('1','Creat log file','Done'))

logfile.write("{},{},{},{}\n".format('2','Write log','Eror','PermissionError'))

Kết quả:

Hướng dẫn log file 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:

try:

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:

log_conttent=[]


log_conttent1 = ["1","Creat Log file","Error",""]
log_conttent.append(log_conttent1)


log_conttent2 = ["2","write log file","Error","PermissionError"]
log_conttent.append(log_conttent2)


log_conttent3 = ["3","write log","Done",""]
log_conttent.append(log_conttent3)



for log in log_conttent:
logfile.write("{},{},{},{}\n".format(log[0],log[1],log[2],log[3]))
logfile.close()

Kết quả:

Hướng dẫn log file 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.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>