MCPcopy Index your code
hub / github.com/ipython/ipython / logstart

Method logstart

IPython/core/logger.py:68–131  ·  view source on GitHub ↗

Generate a new log-file with a default header. Raises RuntimeError if the log has already been started

(self, logfname=None, loghead=None, logmode=None,
                 log_output=False, timestamp=False, log_raw_input=False)

Source from the content-addressed store, hash-verified

66 logmode = property(_get_mode,_set_mode)
67
68 def logstart(self, logfname=None, loghead=None, logmode=None,
69 log_output=False, timestamp=False, log_raw_input=False):
70 """Generate a new log-file with a default header.
71
72 Raises RuntimeError if the log has already been started"""
73
74 if self.logfile is not None:
75 raise RuntimeError('Log file is already active: %s' %
76 self.logfname)
77
78 # The parameters can override constructor defaults
79 if logfname is not None: self.logfname = logfname
80 if loghead is not None: self.loghead = loghead
81 if logmode is not None: self.logmode = logmode
82
83 # Parameters not part of the constructor
84 self.timestamp = timestamp
85 self.log_output = log_output
86 self.log_raw_input = log_raw_input
87
88 # init depending on the log mode requested
89 isfile = os.path.isfile
90 logmode = self.logmode
91
92 if logmode == 'append':
93 self.logfile = io.open(self.logfname, 'a', encoding='utf-8')
94
95 elif logmode == 'backup':
96 if isfile(self.logfname):
97 backup_logname = self.logfname+'~'
98 # Manually remove any old backup, since os.rename may fail
99 # under Windows.
100 if isfile(backup_logname):
101 os.remove(backup_logname)
102 os.rename(self.logfname,backup_logname)
103 self.logfile = io.open(self.logfname, 'w', encoding='utf-8')
104
105 elif logmode == 'global':
106 self.logfname = os.path.join(self.home_dir,self.logfname)
107 self.logfile = io.open(self.logfname, 'a', encoding='utf-8')
108
109 elif logmode == 'over':
110 if isfile(self.logfname):
111 os.remove(self.logfname)
112 self.logfile = io.open(self.logfname,'w', encoding='utf-8')
113
114 elif logmode == 'rotate':
115 if isfile(self.logfname):
116 if isfile(self.logfname+'.001~'):
117 old = glob.glob(self.logfname+'.*~')
118 old.sort()
119 old.reverse()
120 for f in old:
121 root, ext = os.path.splitext(f)
122 num = int(ext[1:-1])+1
123 os.rename(f, root+'.'+repr(num).zfill(3)+'~')
124 os.rename(self.logfname, self.logfname+'.001~')
125 self.logfile = io.open(self.logfname, 'w', encoding='utf-8')

Callers 1

Calls 4

sortMethod · 0.80
removeMethod · 0.45
writeMethod · 0.45
flushMethod · 0.45

Tested by 1