Ⅰ python如何用print列印出列表
直接使用print函數就可以了,舉個例子:
L=['apple','fruit']#定義一個列表
print(L)#輸出一個列表
輸出結果就是['apple','fruit']。
不帶輸出項的print即為輸出一個空行,如果之前的print語句輸出項的最後用了諸如「,」或「;」,則表示其輸出是在同一行上。其後面的空的print語句用來消除前面的print語句一直在同一行上輸出的效果,使其後面的輸出是在下一行。
Ⅱ python中使用logging模塊在控制台列印日誌的同時也列印log文件,但發現控制台的信息會出現重復列印
loggin模塊需要進行很多封裝才好用,你這種情況應該是初始化有問題,給你貼一段代碼你自己照抄下來用用試試。
#-*-coding:UTF8-*-
#
importos
importlogging
classLogger(object):
'''
@summary:日誌處理對象,對logging的封裝
'''
def__init__(self,name='Logger'):
self.logger=logging.getLogger(name)
self.init_logger()
definit_logger(self):
self.logger.setLevel(logging.DEBUG)
#屏幕輸出日誌
stream=logging.StreamHandler()
stream.setLevel(logging.INFO)
#日誌樣式
fm_stream=logging.Formatter("[ 33[1;%(colorcode)sm%(levelname)s 33[0m%(asctime)s%(myfn)s:%(mylno)d:%(myfunc)s%(mymole)s]%(message)s","%m-%d%H:%M:%S")
stream.setFormatter(fm_stream)
self.logger.addHandler(stream)
defupdate_kwargs(self,kwargs,colorcode):
try:
fn,lno,func=self.logger.findCaller()
fn=os.path.basename(fn)
exceptExceptionasddd:
fn,lno,func="(unknownfile)",0,"(unknownfunction)"
ifnot"extra"inkwargs:
kwargs["extra"]={}
kwargs["extra"]["myfn"]=fn
kwargs["extra"]["mylno"]=lno
kwargs["extra"]["myfunc"]=func
kwargs["extra"]["colorcode"]=colorcode
kwargs["extra"]["mymole"]=""
defdebug(self,msg,*args,**kwargs):
self.update_kwargs(kwargs,"0")#原色
self.logger.debug(msg,*args,**kwargs)
definfo(self,msg,*args,**kwargs):
self.update_kwargs(kwargs,"32")#綠色
self.logger.info(msg,*args,**kwargs)
defwarning(self,msg,*args,**kwargs):
self.update_kwargs(kwargs,"33")#黃色
self.logger.warning(msg,*args,**kwargs)
deferror(self,msg,*args,**kwargs):
self.update_kwargs(kwargs,"31")#紅色
self.logger.error(msg,*args,**kwargs)
defcritical(self,msg,*args,**kwargs):
self.update_kwargs(kwargs,"31")#紅色
self.logger.critical(msg,*args,**kwargs)
使用方法:
fromloggerimportLogger
Logger().info('xxxxx')
Logger().warning('xxxxx')
Logger().error('xxxxx')
Ⅲ python logging日誌列印疑問
用法錯誤了,正確的用法是
import logging
logger = logging.getLogger( )
handler = logging.FileHandler( 'log.log' )
handler.setFormatter( logging.Formatter( '%(asctime)s %(levelname)s %(message)s' ) )
logger.addHandler( handler )
logger.setLevel( logging.DEBUG )
if __name__ == '__main__':
for data in [ '1' ,'2' ,'3' ]:
logger.debug( data )
你上面的輸出並不是logging的輸出,而是顯式調用writeLog的輸出,而且每調用一次writeLog,就在writeLog里調用一次addHandler增加一個handle,那麼下次調用時又會多調用一次,這就是為什麼1輸出了一次,2輸出了兩次.......
Ⅳ 我如何著色Python日誌輸出
終端的字元顏色是用轉義序列控制的,是文本模式下的系統顯示功能,和具體的語言無關。控制字元顏色的轉義序列是以ESC開頭,即用\033來完成 !
Ⅳ 後台Python運行列印出的日誌信息怎樣顯示到前端的flask頁面
客戶的數據查看主要看flask.request這個變數,數據大概存在request.data中, 可以這樣實現。
from flask import Flask, request, current_app
app = Flask(__name__)
@app.route('/getUserList', methods=['GET', 'POST'])
def getUserList():
current_app.getUserList_data = request.data
return 'ok'
@app.route('/getUserList_debug', methods=['GET', 'POST'])
def getUserList_debug():
return current_app.getUserList_data
if __name__ == '__main__':
app.run(debug=True)
Ⅵ python列印日誌,extra是什麼意思
extra是用戶自定義的dict. 這些key/value在格式化的時候可以直接引用。
extra可以用來傳遞額外的日誌信息,尤其是上下文信息。
例如:
FORMAT='%(asctime)-15s%(clientip)s%(user)-8s%(message)s'
logging.basicConfig(format=FORMAT)
d={'clientip':'192.168.0.1','user':'fbloggs'}
logger=logging.getLogger('tcpserver')
logger.warning('Protocolproblem:%s','connectionreset',extra=d)
這里除了protocol錯誤描述外,還附加了客戶IP和用戶名信息。
如果配置了一些非文本格式的handler,結構化的數據會更容易存儲和查詢。
例如,Sentry的logging handler允許用戶用extra.data來傳遞任意信息,並自動記錄到web界面。
logger.error('Therewassomecrazyerror',exc_info=True,extra={
'culprit':'my.view.name',
'fingerprint':[...],
'data':{
#
'username':request.user.username,
}
})
Ⅶ python列印日誌(logging)字典是單引號,轉json時不識別單引號,怎麼能列印出來時雙引號
如果只是單純想把字典loads到json中,可以用repr+replace轉換一下。
Ⅷ python 讓Log既列印在屏幕上,又在文件里保存一份
兩條語句不就成了。
一條print列印到屏幕
再一條標准輸出到文件
Ⅸ python寫日誌需要輸出什麼信息
記錄某個時間點發生了什麼事情,錯誤信息、警告信息、提示信息、調試信息等