MCPcopy Create free account
hub / github.com/ipython/ipython / logstart

Method logstart

IPython/core/logger.py:64–127  ·  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

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

Callers

nothing calls this directly

Calls 4

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

Tested by

no test coverage detected