2012-08-06 21 views
9

क्या आईपीथॉन की लॉगिंग क्षमता बनाने के लिए कोई तरीका है आउटपुट के साथ-साथ इनपुट भी शामिल है? लॉग आईपीथन आउटपुट?

#!/usr/bin/env python 
# 2012-08-06.py 
# IPython automatic logging file 
# 12:02 
# ================================= 
print "test" 
# test 

(# है

क्योंकि मुझे लगता है कि जरूरत है:

#!/usr/bin/env python 
# 2012-08-06.py 
# IPython automatic logging file 
# 12:02 
# ================================= 
print "test" 

मैं एक और लाइन दिखाने के लिए करना चाहते हैं:

यह एक लॉग फ़ाइल लग रहा है जो वर्तमान में की तरह है ब्रेकिंग आईपीथॉन की logplay फीचर को रोकने के लिए)

मुझे लगता है कि यह आईपीथॉन नोटबुक का उपयोग करना संभव है, लेकिन कम से कम एक मशीन पर मुझे इसकी आवश्यकता है, मैं सीमित हूं ipython 0.10.2 करने के लिए एड।

संपादित करें: मैं यह जानना चाहता हूं कि इसे स्वचालित रूप से कैसे सेट अप करें, यानी कॉन्फ़िगरेशन फ़ाइल के भीतर। अभी मेरी config

from time import strftime 
import os 
logfilename = strftime('ipython_log_%Y-%m-%d')+".py" 
logfilepath = "%s/%s" % (os.getcwd(),logfilename) 

file_handle = open(logfilepath,'a') 
file_handle.write('########################################################\n') 
out_str = '# Started Logging At: '+ strftime('%Y-%m-%d %H:%M:%S\n') 
file_handle.write(out_str) 
file_handle.write('########################################################\n') 
file_handle.close() 

c.TerminalInteractiveShell.logappend = logfilepath 
c.TerminalInteractiveShell.logstart = True 

की तरह दिखता है, लेकिन निर्दिष्ट करने c.TerminalInteractiveShell.log_output = True है कोई प्रभावित करने के लिए

उत्तर

8

वहाँ %logstart के लिए -o विकल्प नहीं है लगता है:

-o: log also IPython's output. In this mode, all commands which 
    generate an Out[NN] prompt are recorded to the logfile, right after 
    their corresponding input line. The output lines are always 
    prepended with a '#[Out]# ' marker, so that the log remains valid 
    Python code. 

परिशिष्ट: आप के लिए एक इंटरैक्टिव IPython सत्र में कर रहे हैं जो लॉगिंग पहले ही शुरू हो चुकी है, आपको पहले लॉगिंग रोकना होगा और फिर पुनरारंभ करना होगा:

In [1]: %logstop 

In [2]: %logstart -o 
Activating auto-logging. Current session state plus future input saved. 
Filename  : ./ipython.py 
Mode   : backup 
Output logging : True 
Raw input log : False 
Timestamping : False 
State   : active 

ध्यान दें, पुनरारंभ करने के बाद, "आउटपुट लॉगिंग" अब "सत्य" है।

+1

यह समाधान यहां एक स्टार्टअप स्क्रिप्ट में ऐसा प्रतीत होता है, जैसा कि यहां वर्णित है: http://wiki.ipython.org/Cookbook/DatedLog (यह http://stackoverflow.com/questions/11836612 में प्रदान किया गया समाधान था/जहां-कैसे-इन-क्या-संदर्भ है-ipythons-विन्यास-फ़ाइल-निष्पादित? एलक्यू = 1) – keflavich

संबंधित मुद्दे