80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
|
import threading
|
|||
|
import multiprocessing as mp
|
|||
|
from queue import Queue #Thread 無法回傳值,所以要使用 Queue.put() 將要傳回的值存入 Queue,再用 Queue.get() 取出
|
|||
|
import time
|
|||
|
import os
|
|||
|
import datetime
|
|||
|
import logging
|
|||
|
import cv2
|
|||
|
|
|||
|
class Thread_class(threading.Thread):
|
|||
|
def __init__(self,code_name,logeer):
|
|||
|
threading.Thread.__init__(self)
|
|||
|
self.code_name = code_name
|
|||
|
# log 設定
|
|||
|
#self.log_setting()
|
|||
|
self.log_setting_1()
|
|||
|
|
|||
|
def run(self):
|
|||
|
print('process {} '.format(os.getpid())) # 查看進程
|
|||
|
print('thread {} '.format(threading.current_thread().name)) # 查看線程
|
|||
|
# log 設定
|
|||
|
#self.log_setting_1()
|
|||
|
#logger = self.logger
|
|||
|
self.logger.info("Start")
|
|||
|
for i in range(0,5):
|
|||
|
self.logger.info(f'{self.code_name} : {i}')
|
|||
|
time.sleep(0.5)
|
|||
|
def test_return(self):
|
|||
|
return(f'{self.code_name}=END')
|
|||
|
|
|||
|
# log setting
|
|||
|
def log_setting(self):
|
|||
|
day_date = (datetime.datetime.now().strftime("%Y%m%d"))
|
|||
|
log_file = f'LOG\\Thread\\{self.code_name}-{day_date}.txt'
|
|||
|
# 创建一个 Logger 对象
|
|||
|
self.logger = logging.getLogger(log_file)
|
|||
|
# 设置 Logger 级别
|
|||
|
self.logger.setLevel(logging.INFO)
|
|||
|
# 创建一个处理程序并将其级别设置为 INFO
|
|||
|
ch = logging.StreamHandler()
|
|||
|
ch.setLevel(logging.INFO)
|
|||
|
# 创建一个格式器并将其添加到处理程序
|
|||
|
formatter = logging.Formatter('%(asctime)s - %(levelname)-8s - %(message)s', datefmt='%Y%m%d %H:%M:%S')
|
|||
|
ch.setFormatter(formatter)
|
|||
|
# 将处理程序添加到 logger
|
|||
|
self.logger.addHandler(ch)
|
|||
|
# 创建一个文件处理程序并将其添加到 logger
|
|||
|
file_handler = logging.FileHandler(log_file)
|
|||
|
file_handler.setFormatter(formatter)
|
|||
|
self.logger.addHandler(file_handler)
|
|||
|
|
|||
|
def log_setting_1(self):
|
|||
|
log_file = f'LOG.txt'
|
|||
|
day_date = (datetime.datetime.now().strftime("%Y%m%d"))
|
|||
|
log_file = f'LOG\\Thread\\{self.code_name}-{day_date}.txt'
|
|||
|
# create logger
|
|||
|
self.logger = logging.getLogger(log_file)
|
|||
|
self.logger.setLevel(logging.DEBUG)
|
|||
|
|
|||
|
# create console handler and set level to debug
|
|||
|
ch = logging.StreamHandler()
|
|||
|
ch.setLevel(logging.DEBUG)
|
|||
|
|
|||
|
# create file handler and set level to info
|
|||
|
fh = logging.FileHandler(log_file)
|
|||
|
fh.setLevel(logging.WARNING)
|
|||
|
|
|||
|
# create formatter
|
|||
|
formatter = logging.Formatter(
|
|||
|
'%(asctime)s - %(name)-36s - %(levelname)-8s - %(message)s')
|
|||
|
|
|||
|
# add formatter to console handler and file handler
|
|||
|
ch.setFormatter(formatter)
|
|||
|
fh.setFormatter(formatter)
|
|||
|
|
|||
|
# add console handler and file handler to logger
|
|||
|
self.logger.addHandler(ch)
|
|||
|
self.logger.addHandler(fh)
|
|||
|
|