❶ 如何使用批處理執行python腳本,並把python腳本的控制台日誌輸出到一個log文件中
1, 用絕對路徑試試:D:\logs\log.txt;
2, 最後的exit去掉試試,反正最後一行執行完也會自然退出。
3, 另寫一個簡單的python測試腳本,裡面只有一行 print 'Hello World', 然後用上述批處理執行一下看看log對不對。
❷ python 讀取日誌文件
#-*-coding:utf-8-*-
withopen('log.txt','r')asf:
foriinf:
ifdt.strftime(dt.now(),'%Y-%m-%d')ini:
#判斷是否當天時間
if'ERROR'iniand'atcom.mytijian'ini:
#判斷此行中是否含有'ERROR'及'atcom.mytijian'
if((dt.now()-dt.strptime(i.split(',')[0],'%Y-%m-%d%H:%M:%S')).seconds)<45*60:
#判斷時間是為當前45分鍾內
printi
❸ python如何查看報錯日誌
test.py的39行,有個對象是個None?意思是你肯定有什麼對象沒有初始化就用了吧。
這個日誌提示的信息意思最後一行NoneType,你還是查查你的test.py調用的方法是不是不對
你可以在IDLE下單步執行看看,環境變數是不是有些沒有按照你想像的進行。
❹ linux python 日誌在哪
現在有test.py程序要後台部署, 裡面有輸出內容
使用命令:
nohup python -u test.py > test.log 2>&1 &
最後的&表示後台運行
2 輸出錯誤信息到提示符窗口
1 表示輸出信息到提示符窗口, 1前面的&注意添加, 否則還會創建一個名為1的文件
最後會把日誌文件輸出到test.log文件
查看
tail -f test.log如果要實時查看日誌文件使用命令
cat test.log查看全部輸出使用命令
❺ python2.7怎麼控制日誌的大小
importglob該實例可實現循環打日誌 ,第一個文件達到maxBytes大小後,就寫入第二個文件。
importlogging
importlogging.handlers
LOG_FILENAME='logging_rotatingfile_example.out'
#
my_logger=logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
#
handler=logging.handlers.RotatingFileHandler(LOG_FILENAME,
maxBytes=20,
backupCount=5,
)
my_logger.addHandler(handler)
#Logsomemessages
foriinrange(20):
my_logger.debug('i=%d'%i)
#Seewhatfilesarecreated
logfiles=glob.glob('%s*'%LOG_FILENAME)
forfilenameinlogfiles:
printfilename
❻ python中,如何添加一個日誌點紀錄執行到哪個類和方法求大神指點
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s:%(levelname)s:%(message)s',
filename=logging_file,
filemode='w',
)
format 配置如下類似的模版即可
%(pathname)s # 調用日誌輸出函數的模塊的完整路徑名,可能沒有
%(filename)s # 調用日誌輸出函數的模塊的文件名
%(mole)s # 調用日誌輸出函數的模塊名
%(funcName)s # 調用日誌輸出函數的函數名
%(lineno)d # 調用日誌輸出函數的語句所在的代碼行
❼ 如何把數據寫入日誌里(python)
#coding=utf-8
def initlog():
import logging
# 生成一個日誌對象
logger = logging.getLogger()
# 生成一個Handler。logging支持許多Handler,
# 象FileHandler, SocketHandler, SMTPHandler等,我由於要寫
# 文件就使用了FileHandler。
# logfile是一個全局變數,它就是一個文件名,如:'crawl.log'
logfile = 'test.log'
hdlr = logging.FileHandler(logfile)
# 成一個格式器,用於規范日誌的輸出格式。如果沒有這行代碼,那麼預設的
# 格式就是:"%(message)s"。也就是寫日誌時,信息是什麼日誌中就是什麼,
# 沒有日期,沒有信息級別等信息。logging支持許多種替換值,詳細請看
# Formatter的文檔說明。這里有三項:時間,信息級別,日誌信息
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
# 將格式器設置到處理器上
hdlr.setFormatter(formatter)
# 將處理器加到日誌對象上
logger.addHandler(hdlr)
# 設置日誌信息輸出的級別。logging提供多種級別的日誌信息,如:NOTSET,
# DEBUG, INFO, WARNING, ERROR, CRITICAL等。每個級別都對應一個數值。
# 如果不執行此句,預設為30(WARNING)。可以執行:logging.getLevelName
# (logger.getEffectiveLevel())來查看預設的日誌級別。日誌對象對於不同
# 的級別信息提供不同的函數進行輸出,如:info(), error(), debug()等。當
# 寫入日誌時,小於指定級別的信息將被忽略。因此為了輸出想要的日誌級別一定
# 要設置好此參數。這里我設為NOTSET(值為0),也就是想輸出所有信息
logger.setLevel(logging.NOTSET)
return logger
logging=initlog()
logging.info(u'注冊')
❽ python中怎麼讓日誌文件數據變成列表
去讀文件,一行一行加入[],就成列表了,然後可以針對列表進行處理。
具體是什麼還需要你描述出來~
❾ 如何用python,每隔5分鍾對實時日誌做統計處理
不清楚你是不是用apache 舉apache log+python
#!/usr/bin/envpython
fromthreadingimportTimer
importtime
timer_interval=3000
defreadlogs()
log="/var/log/httpd/access"
reader=open(log,'r')
contents=[]
forlineinreader.xreadlines():
p=re.compile('.*"GET(/seo/t.php?.*)HTTP/1.1".*',re.IGNORECASE)
m=p.match(line)
ifm:
res_file=m.group(1)
#printres_file
cs=urlparse.urlparse(res_file)
#cs_lem=len(cs)
#pprint.pprint(cs)
s_q=urlparse.parse_qs(cs.query,True)
ref=urlparse.urlparse(str(s_q['ref'][0]))
ref_wd=urlparse.parse_qs(ref.query,True)
printref_wd['wd'][0]
else:
contents.append(line)
reader.close()
returncontents
defparselog():
contents=readlogs()
foriincontents:
printi
t=Timer(timer_interval,parselog)
t.start()
whileTrue:
time.sleep(0.1)
print'mainrunning'
❿ python的日誌,如何做到一天是單獨一個日誌,並且定期清理
創建以日期為文件的log文件(如:20140911.log),寫日誌前判斷存放日誌路徑是否存在以當天日期為文件名的文件,如果存在添加日誌信息,不存在就創建,在寫日誌信息。
定期清理亦可以按照此思路來做