Ginnie, Dave,
Please find my responses inline:
On 01/19/11 01:17 AM, Ginnie Wray wrote:
Hi William -
You should be able to use the InstallLogger. The DC was able to modify it It creates its own logging files. Here is a sample of
what they did:
global DC_LOGGER
DC_LOGGER = logging.getLogger(INSTALL_LOGGER_NAME)
# set the logfile name
log_name = "log.%s" % time.strftime("%Y-%m-%d.%H:%M")
detail_log_name = "detail-%s" % log_name
simple_log_name = "simple-%s" % log_name
# create an additional FileHandler for a simple log
base, logfile = os.path.split(DEFAULTLOG)
simple_logname = os.path.join(base, "simple-" + logfile)
simple_fh = FileHandler(simple_logname)
simple_fh.setLevel(logging.INFO)
DC_LOGGER.addHandler(simple_fh)
Through the installLogger, when adding a handler, the format has a
default unless another is applied to the handler. So the format can be
modified.
When you invoke the InstallLogger, you get the default log and the
default format, but you can add additional handlers to fit your needs.
During the design, Sarah wanted there to be defaults that were not able
to be modified. Thus the hardcoded location of the log. If the defaults
don't work for a situation, it would make sense to see what needs to be
done to make it more flexible.
So it appears that InstallLogger was designed to be inflexible to benefit installation on the client. InstallLogger forces use of a
log file named /var/tmp/install/default_log with the PID appended. Neither the filename nor path is appropriate for the AI server
UI or CGI. The CGI should be as efficient as possible, and it should not be doing any unnecessary logging. So there's a basic
conflict in using it for a CGI and the AI server.
The one benefit InstallLogger has for CGI and server UIs is that it has a good standard class name. If I were to adapt
InstallLogger, I would add a boolean parameter indicating server-side functionality, which would bypass the logfile handler intended
for the client:
Arg (optional, defaults to False): server - set to True to indicate
server-side logic
Server-side logic would inhibit logging intended for client.
On 01/17/11 10:42, William Schumann wrote:
Dave, responding to your logging comments below.
On 01/12/11 09:51 PM, Dave Miner wrote:
On 12/21/10 11:32 AM, William Schumann wrote:
Requesting code review for enhancements for service configuration
profiles in the Automated Installer.
http://cr.opensolaris.org/~wmsch/profile/
...
45, 46, others: I'm skeptical of having our own log rotation going on here. logadm is the general facility in Solaris for
administrators to control log rotation and I'd prefer to see that used since it provides a way for them to express their
preferred policy, which doesn't seem to be supported here. Also, I'm somewhat surprised that this isn't using InstallLogger,
but perhaps there's a reason that's not suitable somehow?
The InstallLogger class from solaris_install/logger.py was written for the install environment on the install target, and not the
installadm UI nor an AI server CGI (e.g., logfile is hard-coded for /var/tmp, formatting method seems to be intended only for the
Transfer phase logging, hardcoded formatter, etc.).
However, logger.py does seem to be a more appropriate place for new AI
server-side logging code than common_profile.py.
To substitute logadm for the RotatingFileHandler, I think it could be
accomplished like this:
- if an /etc/logsvc.conf record for installadm logfile did not exist, installadm would append one, leveraging fmadm(1M) with some
defaults
- replace RotatingFileHandler with a non-rotating logging handler like logger.py's FileHandler, which is a class derived from the
Python logging.FileHandler class (needs some exception handling for failure to create log directory or log file)
You would be able to do that with code similar to what I've included above.
Yes, thanks for that.
To recap, I would add the "server" boolean argument to suppress the normal InstallLogger logfile, then use logger.py's FileHandler
to add a handler for a logfile to be pruned by logadm(1M). The logadm command would be run upon the installation of the installadm
package on the AI server.
Thank you,
William
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss