📄 clogmgt.java
字号:
* Is Logging Level FINEST logged
* @return true if it is logged
*/
public static boolean isLevelAll ()
{
return Level.ALL.intValue() == s_currentLevel.intValue();
} // isLevelFinest
/**
* Is Logging Level FINEST logged
* @return true if it is logged
*/
public static boolean isLevelFinest ()
{
return Level.FINEST.intValue() >= s_currentLevel.intValue();
} // isLevelFinest
/**
* Is Logging Level FINER logged
* @return true if it is logged
*/
public static boolean isLevelFiner ()
{
return Level.FINER.intValue() >= s_currentLevel.intValue();
} // isLevelFiner
/**
* Is Logging Level FINE logged
* @return true if it is logged
*/
public static boolean isLevelFine ()
{
return Level.FINE.intValue() >= s_currentLevel.intValue();
} // isLevelFine
/**
* Is Logging Level INFO logged
* @return true if it is logged
*/
public static boolean isLevelInfo ()
{
return Level.INFO.intValue() >= s_currentLevel.intValue();
} // isLevelFine
/**
* Enable/Disable logging (of handlers)
* @param enableLogging true if logging enabled
*/
public static void enable (boolean enableLogging)
{
if (enableLogging)
setLevel(s_currentLevel);
else
{
Level level = s_currentLevel;
setLevel(Level.OFF);
s_currentLevel = level;
}
} // enable
/**
* Shutdown Logging system
*/
public static void shutdown ()
{
LogManager mgr = LogManager.getLogManager();
mgr.reset();
} // shutdown
/**
* Print Properties
*
* @param p Properties to print
* @param description Description of properties
* @param logIt if true write to Log (Level.Config), else to System.out
*/
public static void printProperties (Properties p, String description, boolean logIt)
{
if (p == null)
return;
if (logIt)
log.info(description + " - Size=" + p.size()
+ ", Hash=" + p.hashCode() + "\n" + getLocalHost());
else
System.out.println("Log.printProperties = " + description + ", Size=" + p.size()
+ ", Hash=" + p.hashCode() + "\n" + getLocalHost());
Object[] pp = p.keySet().toArray();
Arrays.sort(pp);
for (int i = 0; i < pp.length; i++)
{
String key = pp[i].toString();
String value = p.getProperty(key);
if (logIt)
log.config(key + "=" + value);
else
System.out.println(" " + key + " = " + value);
}
} // printProperties
/**
* Get Compiere System Info
* @return Info as multiple Line String
*/
public static StringBuffer getInfo (StringBuffer sb)
{
if (sb == null)
sb = new StringBuffer();
final String eq = " = ";
sb.append(getMsg("Host")).append(eq) .append(getServerInfo()).append(NL);
sb.append(getMsg("Database")).append(eq) .append(getDatabaseInfo()).append(NL);
sb.append(getMsg("Schema")).append(eq) .append(CConnection.get().getDbUid()).append(NL);
//
sb.append(getMsg("AD_User_ID")).append(eq) .append(Env.getContext(Env.getCtx(), "#AD_User_Name")).append(NL);
sb.append(getMsg("AD_Role_ID")).append(eq) .append(Env.getContext(Env.getCtx(), "#AD_Role_Name")).append(NL);
//
sb.append(getMsg("AD_Client_ID")).append(eq).append(Env.getContext(Env.getCtx(), "#AD_Client_Name")).append(NL);
sb.append(getMsg("AD_Org_ID")).append(eq) .append(Env.getContext(Env.getCtx(), "#AD_Org_Name")).append(NL);
//
sb.append(getMsg("Date")).append(eq) .append(Env.getContext(Env.getCtx(), "#Date")).append(NL);
sb.append(getMsg("Printer")).append(eq) .append(Env.getContext(Env.getCtx(), "#Printer")).append(NL);
//
Manifest mf = ZipUtil.getManifest("CClient.jar");
if (mf == null)
mf = ZipUtil.getManifest("CTools.jar");
if (mf != null)
{
Attributes atts = mf.getMainAttributes();
if (atts != null)
{
Iterator it = atts.keySet().iterator();
while (it.hasNext())
{
Object key = it.next();
if (key.toString().startsWith("Impl") || key.toString().startsWith("Spec"))
sb.append(key).append(eq).append(atts.get(key)).append(NL);
}
}
}
sb.append("CompiereHome = ").append(Compiere.getCompiereHome()).append(NL);
sb.append(Env.getLanguage(Env.getCtx())).append(NL);
MClient client = MClient.get(Env.getCtx());
sb.append(client).append(NL);
sb.append(getMsg("IsMultiLingualDocument"))
.append(eq).append(client.isMultiLingualDocument()).append(NL);
sb.append("BaseLanguage = ").append(Env.isBaseLanguage(Env.getCtx(), "AD_Window"))
.append("/").append(Env.isBaseLanguage(Env.getCtx(), "C_UOM")).append(NL);
sb.append(Compiere.getJavaInfo()).append(NL);
sb.append(Compiere.getOSInfo());
//
return sb;
} // getInfo
/**
* Create System Info
* @param sb Optional string buffer
* @param ctx Environment
* @return System Info
*/
public static StringBuffer getInfoDetail (StringBuffer sb, Properties ctx)
{
if (sb == null)
sb = new StringBuffer();
if (ctx == null)
ctx = Env.getCtx();
// Envoronment
CConnection cc = CConnection.get();
sb.append(NL)
.append("=== Environment === ")
.append(Compiere.getCheckSum()).append(NL)
.append(Compiere.getSummaryAscii()).append(NL)
.append(getLocalHost()).append(NL)
.append(cc.toStringLong()).append(NL)
.append(cc.getInfo()).append(NL);
// Context
sb.append(NL)
.append("=== Context ===").append(NL);
String[] context = Env.getEntireContext(ctx);
Arrays.sort(context);
for (int i = 0; i < context.length; i++)
sb.append(context[i]).append(NL);
// System
sb.append(NL)
.append("=== System ===").append(NL);
Object[] pp = System.getProperties().keySet().toArray();
Arrays.sort(pp);
for (int i = 0; i < pp.length; i++)
{
String key = pp[i].toString();
String value = System.getProperty(key);
sb.append(key).append("=").append(value).append(NL);
}
return sb;
} // getInfoDetail
/**
* Get translated Message, if DB connection exists
* @param msg AD_Message
* @return translated msg if connected
*/
private static String getMsg (String msg)
{
if (DB.isConnected())
return Msg.translate(Env.getCtx(), msg);
return msg;
} // getMsg
/**
* Get Server Info.
* @return host : port (NotActive) via CMhost : port
*/
private static String getServerInfo()
{
StringBuffer sb = new StringBuffer();
CConnection cc = CConnection.get();
// Host
sb.append(cc.getAppsHost()).append(" : ")
.append(cc.getAppsPort())
.append(" (");
// Server
if (cc.isAppsServerOK(false))
sb.append(CConnection.get().getServerVersion());
else
sb.append(getMsg("NotActive"));
//
sb.append(")\n ");
//
boolean remoteObjects = DB.isRemoteObjects();
boolean remoteProcess = DB.isRemoteProcess();
String realCP = CConnection.PROFILE_LAN;
if (cc.isRMIoverHTTP() && cc.isAppsServerOK(false))
realCP = CConnection.PROFILE_WAN;
else if (remoteObjects && remoteProcess)
realCP = CConnection.PROFILE_VPN;
else if (remoteProcess)
realCP = CConnection.PROFILE_TERMINAL;
sb.append(cc.getConnectionProfileText(realCP));
sb.append(": Tunnel=").append(cc.isRMIoverHTTP() && cc.isAppsServerOK(false))
.append(", Objects=").append(remoteObjects)
.append(", Process=").append(remoteProcess);
return sb.toString();
} // getServerInfo
/**
* Get Database Info
* @return host : port : sid
*/
private static String getDatabaseInfo()
{
StringBuffer sb = new StringBuffer();
sb.append(CConnection.get().getDbHost()).append(" : ")
.append(CConnection.get().getDbPort()).append(" / ")
.append(CConnection.get().getDbName());
// Connection Manager
if (CConnection.get().isViaFirewall())
sb.append(getMsg("via")).append(" ")
.append(CConnection.get().getFwHost()).append(" : ")
.append(CConnection.get().getFwPort());
return sb.toString();
} // getDatabaseInfo
/**
* Get Localhost
* @return local host
*/
private static String getLocalHost()
{
try
{
InetAddress id = InetAddress.getLocalHost();
return id.toString();
}
catch (Exception e)
{
log.log(Level.SEVERE, "getLocalHost", e);
}
return "-no local host info -";
} // getLocalHost
/**************************************************************************
* CLogMgt
*/
public CLogMgt ()
{
testLog();
}
/**
* Test Log
*/
private void testLog()
{
final CLogger log = CLogger.getCLogger("test");
//
log.log(Level.SEVERE, "severe");
log.warning("warning");
log.info("Info");
log.config("config");
log.fine("fine");
log.finer("finer");
log.entering("myClass", "myMethod", "parameter");
log.exiting("myClass", "myMethod", "result");
log.finest("finest");
new Thread()
{
public void run()
{
log.info("thread info");
}
}.start();
try
{
Integer.parseInt("ABC");
}
catch (Exception e)
{
log.log(Level.SEVERE, "error message", e);
}
log.log(Level.INFO, "info message 1", "1Param");
log.log(Level.INFO, "info message n", new Object[]{"1Param","2Param"});
} // testLog
/**
* Test
* @param args ignored
*/
public static void main (String[] args)
{
initialize(true);
new CLogMgt();
} // CLogMgt
} // CLogMgt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -