fmwlogging.py: # # usage: # # ${ORACLE_HOME}/common/bin/wlst.sh [domain-name] [admin-server-url] [password] # import os import sys import traceback import getopt loggingEnabled=True # rotationType="none", "bySize", "byTime" # logFileSeverity="Trace", "Debug", "Info", "Notice", "Warning" # rotateLogOnStartup=False, True rotationType="none" logFileSeverity="Warning" rotateLogOnStartup=True def editMode(): edit() startEdit() def editActivate(): save() activate(block="true") def updateLog(domain_name, logMB, logType): print "**** Start updateLog()" fileName = "" if logType == "Access": logMB.setLoggingEnabled(loggingEnabled) fileName = "/data/logs/" + domain_name + "/" + logMB.getName() + "_access.log" elif logType == "Server": fileName = "/data/logs/" + domain_name + "/" + logMB.getName() + ".log" elif logType == "Datasource": fileName = "/data/logs/" + domain_name + "/" + logMB.getName() + "_datasource.log" elif logType == "Domain": logMB.setLogFileSeverity(logFileSeverity) fileName = "/data/logs/" + domain_name + "/" + domain_name + ".log" print "**** " + logType + " " + fileName logMB.setFileName(fileName) logMB.setRotationType(rotationType) logMB.setRotateLogOnStartup(rotateLogOnStartup) print "**** Finished updateLog()" def changeLogPath(domain_name): print "**** Start changeLogPath()" domainConfig() editMode() logMB = getMBean("/Log/" + domain_name) updateLog(domain_name, logMB, logType="Domain") editActivate() servers = cmo.getServers() editMode() for server in servers: serverName = server.getName() logMB = getMBean("/Servers/" + serverName + "/Log/" + serverName) updateLog(domain_name, logMB, "Server") httpLogMB = getMBean("/Servers/" + serverName + "/WebServer/" + serverName + "/WebServerLog/" + serverName) updateLog(domain_name, httpLogMB, "Access") DSLogMB = getMBean("/Servers/" + serverName + "/DataSource/" + serverName + "/DataSourceLogFile/" + serverName) updateLog(domain_name, DSLogMB, "Datasource") editActivate() print "**** Finished changeLogPath()" def usage(): print "Usage" print "./fmwlogging.py$1" def parse_input(): print "***** Start parse_input()" domain_name = sys.argv[1] admin_server = sys.argv[2] admin_password = sys.argv[3] return domain_name, admin_server, admin_password print "***** Start parse_input()" # Connectionsettings def connectToServer(username, password, adminurl): print "***** Start connectToServer()" connect(username, password, adminurl) print "***** Finished connectToServer()" #Definition to disconnect from a server def disconnectFromServer(): print "***** Start disconnectFromServer()" disconnect() print "***** Finished disconnectFromServer()" exit() def changeODLPath(domain_name): print "***** Start changeODLPath()" domainConfig() managedServers=cmo.getServers() #Get Runtime for our server for managedServer in managedServers: sname=managedServer.getName() path = "/Servers/" + sname cd(path) print "***** Changing server: " + sname lh = listLogHandlers(target=sname) for l in lh: lname = l.get("name") lprops = l.get("properties") removeprops=[] for prop in lprops: if prop.get("name") == "maxFileSize": removeprops.append("maxFileSize") elif prop.get("name") == "maxLogSize": removeprops.append("maxLogSize") odlfile = "/data/logs/" + domain_name + "/" + sname + "-" + lname + "-diagnostic.log" configureLogHandler(target=sname, name=lname, path=odlfile,removeProperty=removeprops) print "***** Finished changeODLPath()" def main(domain_name, admin_server, admin_password): print "***** Start main()" connectToServer("weblogic", admin_password, admin_server) # do the change the ODL log files on all servers ( Admin, managed) # changeODLPath(domain_name) # do the change the standard log files on all servers ( Admin, managed) changeLogPath(domain_name) # Calling disconnectFromServer definition with no arguments disconnectFromServer() print "***** Finished main()" try: print "** start()" domain_name, admin_server, admin_password = parse_input() main(domain_name, admin_server, admin_password) print "** finished()" except Exception, (e): print "ERROR: An unexpected error occurred!" traceback.print_exc() dumpStack() print "ERROR: Failed to configure fmw diagnostic logging " + domain_name + "!!" #EOF
Reference: Weblogic MBean Documentation