|
|
|
Logs
Action : wls.logs (Category : wls, Name : logs, By : kikonf)
Complete Name : wls.logs.by.kikonf Version : 4.0 License : Modified BSD License Purpose of the wls category : Easy to customize. This category use in background the wlst command in jython mode, to drive WebLogic Server ® configuration. You can use it to manage the whole WebLogic ® architecture. Purpose of this logs plugin : Tune logs parameters The following shows the main Source Code File for the Action : wls.logs Toggle lines ## Copyright (c) 2008, Patrick Germain Placidoux ## All rights reserved. ## ## This file is part of Kikonf Public Software. ## ## Kikonf Public Software is released under the modified BSD License, ## which should accompany it or any part of it in the file "COPYING". ## If you do not have this file you can access the license ## through the WWW at http://www.kikonf.org/license/bsd/license.txt. ## ## Home: http://www.kikonf.org ## Contact: kikonf@gmx.com from actions.wls.tools import * class Logs(wlsAction): def extract(self, scope_attrs=None, **keywords): self_funct='extract' scope_id, scope_attrs, scope=self.getScope(scope_attrs=scope_attrs, indent=self.getIndent()) self.verbose(scope_attrs) indent=self.getIndent() + 3*' ' logs_node=self.newTop() #-- because in extract mode, each call returns a new blank top node. mkNodeScope(logs_node, scope_attrs, isUnique=True) verbose('Server logs:' + scope_attrs['server'] + ' retreiving.', level=self.getVerbose(), ifLevel=4, indent=self.getIndent()) cmo=cd('/Servers/' + scope_attrs['server'] + '/Log/' + scope_attrs['server']) # Tag server verbose('Server logs:' + scope_attrs['server'] + ' retreived.', level=self.getVerbose(), ifLevel=3, indent=self.getIndent()) server_node=logs_node.newNode('server') extlogs(server_node, cmo) verbose('WebServer logs:' + scope_attrs['server'] + ' retreiving.', level=self.getVerbose(), ifLevel=4, indent=self.getIndent()) cmo=cd('/Servers/' + scope_attrs['server'] + '/WebServer/' + scope_attrs['server'] + '/WebServerLog/' + scope_attrs['server']) # Tag webserver verbose('WebServer logs:' + scope_attrs['server'] + ' retreived.', level=self.getVerbose(), ifLevel=3, indent=self.getIndent()) webserver_node=logs_node.newNode('webserver') extlogs(webserver_node, cmo, level=self.getVerbose(), indent=indent + 3* ' ') if cmo.isLoggingEnabled(): enable_log='true' webserver_node.setAttr('enable_log', enable_log) def inject(self): self_funct='inject' logs_node = self.getTop() logs_attrs = logs_node.getAttrs() scope_id, scope_attrs, scope=self.getScope(parent_node=logs_node, indent=self.getIndent()) #-- Retreives scope self.verbose(scope_attrs) indent=self.getIndent() + 3*' ' cmo=cd('/Servers/' + scope_attrs['server'] + '/Log/' + scope_attrs['server']) if logs_node.hasNode('server'): # Tag server verbose('Server logs:' + scope_attrs['server'] + ' retreiving.', level=self.getVerbose(), ifLevel=4, indent=self.getIndent()) verbose('Server logs:' + scope_attrs['server'] + ' retreived.', level=self.getVerbose(), ifLevel=3, indent=self.getIndent()) node=logs_node.getNode('server')[0] injlogs(node, cmo, level=self.getVerbose(), indent=indent + 2*' ') else: cmo.unSet('FileName') cmo.unSet('RotationType') cmo.setRotateLogOnStartup(False) cmo.unSet('FileMinSize') cmo.setNumberOfFilesLimited(False) cmo.unSet('FileCount') cmo.unSet('LogFileRotationDir') cmo=cd('/Servers/' + scope_attrs['server'] + '/WebServer/' + scope_attrs['server'] + '/WebServerLog/' + scope_attrs['server']) if logs_node.hasNode('webserver'): # Tag webserver verbose('WebServer logs:' + scope_attrs['server'] + ' retreiving.', level=self.getVerbose(), ifLevel=4, indent=self.getIndent()) verbose('WebServer logs:' + scope_attrs['server'] + ' retreived.', level=self.getVerbose(), ifLevel=3, indent=self.getIndent()) node=logs_node.getNode('webserver')[0] injlogs(node, cmo, level=self.getVerbose(), indent=indent + 2* ' ') if node.getAttr('enable_log')=='true':cmo.setLoggingEnabled(True) else:cmo.setLoggingEnabled(False) else: cmo.unSet('FileName') cmo.unSet('RotationType') cmo.setRotateLogOnStartup(False) cmo.unSet('FileMinSize') cmo.setNumberOfFilesLimited(False) cmo.unSet('FileCount') cmo.unSet('LogFileRotationDir') cmo.setLoggingEnabled(False) verbose('Server:' + scope_attrs['server'] + ' modified.', level=self.getVerbose(), ifLevel=3, indent=self.getIndent()) def verbose(self, scope_attrs): scope=str(scope_attrs).replace("'", '')[1:-1] verbose('Logs at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent()) def injlogs(node, cmo, level=None, indent=None): node_attrs=node.getAttrs() # - sets file_path if node_attrs.file_path!=None: cmo.setFileName(node_attrs.file_path) verbose('file_path', node_attrs.file_path, level=level, ifLevel=4, indent=indent ) # - sets rot_type cmo.setRotationType(node_attrs.rot_type) verbose('rot_type', node_attrs.rot_type, level=level, ifLevel=4, indent=indent ) # - sets rot_on_startup if node_attrs.rot_on_startup=='true': verbose('rot_on_startup', node_attrs.rot_on_startup, level=level, ifLevel=4, indent=indent ) cmo.setRotateLogOnStartup(True) else:cmo.setRotateLogOnStartup(False) # - sets min_size cmo.setFileMinSize(node_attrs.min_size) verbose('min_size', node_attrs.min_size, level=level, ifLevel=4, indent=indent ) # - sets do_limit_files if node_attrs.do_limit_files=='true': verbose('do_limit_files', node_attrs.do_limit_files, level=level, ifLevel=4, indent=indent ) cmo.setNumberOfFilesLimited(True) else:cmo.setNumberOfFilesLimited(False) # - sets max_files cmo.setFileCount(node_attrs.max_files) verbose('max_files', node_attrs.max_files, level=level, ifLevel=4, indent=indent ) # - sets rot_dir if node_attrs.rot_dir!=None: verbose('rot_dir', node_attrs.rot_dir, level=level, ifLevel=4, indent=indent ) cmo.setLogFileRotationDir(node_attrs.rot_dir) def extlogs(node, cmo, level=None, indent=None): attrs={} attrs['file_path']=cmo.getFileName() attrs['rot_type']=cmo.getRotationType() if cmo.getRotateLogOnStartup():attrs['rot_on_startup']='true' attrs['min_size']=cmo.getFileMinSize() if cmo.isNumberOfFilesLimited():attrs['do_limit_files']='true' attrs['max_files']=cmo.getFileCount() attrs['rot_dir']=cmo.getLogFileRotationDir() node.setAttrs(**attrs)
Trademarks :
|