我希望在日志文件中看到控制台上显示的所有输出。我浏览了日志记录模块的基础知识,但无法确定我出错的地方。
我的代码是:
# temp2.py
import logging
import pytz
from parameters import *
import pandas as pd
import recos
def create_tbid_cc(tbid_path):
"""Function to read campaign-TBID mapping and remove duplicate entries by
TBID-CampaignName"""
logging.debug('Started')
tbid_cc = pd.read_csv(tbid_path, sep='|')
tbid_cc.columns = map(str.lower, tbid_cc.columns)
tbid_cc_unique = tbid_cc[~(tbid_cc.tbid.duplicated())]
tbid_cc_unique.set_index('tbid', inplace=True)
tbid_cc_unique['campaignname_upd'] = tbid_cc_unique['campaignname']
del tbid_cc_unique['campaignname']
return tbid_cc, tbid_cc_unique
def main():
logging.basicConfig(
filename='app.log', filemode='w',
format='%(asctime)s : %(levelname)s : %(message)s',
datefmt='%m/%d/%Y %I:%M:%S %p',
level=logging.DEBUG)
tbid_cc, tbid_cc_unique = create_tbid_cc(tbid_path=tbid_campaign_map_path)
if __name__ == '__main__':
main()
控制台输出:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
tbid_cc_unique['campaignname_upd'] = tbid_cc_unique['campaignname']
myapp.log的输出是:
09/27/2015 06:29:56 AM : DEBUG : Started
我想在myapp.log文件中看到控制台上显示的警告,但是无法执行此操作。我已将日志记录级别设置为' DEBUG'但仍然输出日志文件是上面提到的唯一一行。对此有任何帮助将不胜感激。
答案 0 :(得分:0)
引发的警告不会自动记录 - 您在控制台中看到它们,因为pandas正在将它们写入stderr。
如果要将这些消息写入日志,则需要捕获这些警告,然后手动记录消息。
请参阅: