Ensure Error caught in InitExecutor and do not exit when error occurs in LogBase (#613)

to avoid affecting normal logic of users

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
Eric Zhao 2019-03-27 10:55:04 +08:00 committed by GitHub
parent 7f29773a34
commit d5204bb6a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -50,16 +50,15 @@ public final class InitExecutor {
} }
for (OrderWrapper w : initList) { for (OrderWrapper w : initList) {
w.func.init(); w.func.init();
RecordLog.info(String.format("[InitExecutor] Initialized: %s with order %d", RecordLog.info(String.format("[InitExecutor] Executing %s with order %d",
w.func.getClass().getCanonicalName(), w.order)); w.func.getClass().getCanonicalName(), w.order));
} }
} catch (Exception ex) { } catch (Exception ex) {
RecordLog.warn("[InitExecutor] Init failed", ex); RecordLog.warn("[InitExecutor] WARN: Initialization failed", ex);
ex.printStackTrace(); ex.printStackTrace();
} catch (Error error) { } catch (Error error) {
RecordLog.warn("[InitExecutor] Init failed with fatal error", error); RecordLog.warn("[InitExecutor] ERROR: Initialization failed with fatal error", error);
error.printStackTrace(); error.printStackTrace();
throw error;
} }
} }

View File

@ -32,11 +32,15 @@ import com.alibaba.csp.sentinel.util.PidUtil;
* @author leyou * @author leyou
*/ */
public class LogBase { public class LogBase {
public static final String LOG_CHARSET = "utf-8"; public static final String LOG_CHARSET = "utf-8";
private static final String DIR_NAME = "logs" + File.separator + "csp"; private static final String DIR_NAME = "logs" + File.separator + "csp";
private static final String USER_HOME = "user.home"; private static final String USER_HOME = "user.home";
public static final String LOG_DIR = "csp.sentinel.log.dir"; public static final String LOG_DIR = "csp.sentinel.log.dir";
public static final String LOG_NAME_USE_PID = "csp.sentinel.log.use.pid"; public static final String LOG_NAME_USE_PID = "csp.sentinel.log.use.pid";
private static boolean logNameUsePid = false; private static boolean logNameUsePid = false;
private static String logBaseDir; private static String logBaseDir;
@ -45,8 +49,8 @@ public class LogBase {
try { try {
init(); init();
} catch (Throwable t) { } catch (Throwable t) {
System.err.println("[LogBase] FATAL ERROR when initializing log class");
t.printStackTrace(); t.printStackTrace();
System.exit(-1);
} }
} }