Skip to content

Commit 64972c9

Browse files
committed
cc.codechecker.api now also logs into PDE
1 parent 072f9b3 commit 64972c9

File tree

10 files changed

+101
-71
lines changed

10 files changed

+101
-71
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package cc.codechecker.plugin;
2+
3+
import cc.codechecker.api.runtime.LogI;;
4+
5+
//logger service for non plugin internal
6+
//components (such as the codechecker service)
7+
public class ExternalLogger implements LogI{
8+
public void log(int severity,String message){
9+
Logger.extLog(severity, message);
10+
}
11+
}

eclipse-plugin/eclipse/cc.codechecker.eclipse.plugin/src/cc/codechecker/plugin/Logger.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.eclipse.core.runtime.ILog;
44
import org.eclipse.core.runtime.Status;
55

6+
67
public class Logger {
78
private static ILog logger = Activator.getDefault().getLog();
89
public static void log(int level,String message){
@@ -13,4 +14,12 @@ public static void log(int level,String message){
1314
logger.log(new Status(level,Activator.PLUGIN_ID,place+message));
1415
}
1516
}
17+
public static void extLog(int level,String message){
18+
StackTraceElement s[] = Thread.currentThread().getStackTrace();
19+
if (s.length>4){//we do not want to show the ExternalLogger.log function in the trace
20+
StackTraceElement caller=s[4];
21+
String place=caller.getFileName()+":"+caller.getLineNumber()+" "+caller.getMethodName()+"(): ";
22+
logger.log(new Status(level,Activator.PLUGIN_ID,place+message));
23+
}
24+
}
1625
}

eclipse-plugin/eclipse/cc.codechecker.eclipse.plugin/src/cc/codechecker/plugin/init/StartupJob.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,33 @@
2121
import org.eclipse.ui.IWorkbench;
2222
import org.eclipse.ui.IWorkbenchWindow;
2323
import org.eclipse.ui.PlatformUI;
24-
25-
import cc.codechecker.api.runtime.CodecheckerServerThread;
2624
import cc.codechecker.plugin.CodeCheckerNature;
2725
import cc.codechecker.plugin.config.CodeCheckerContext;
2826

2927
import cc.codechecker.plugin.Logger;
28+
import cc.codechecker.plugin.ExternalLogger;
29+
30+
import cc.codechecker.api.runtime.SLogger;
31+
import cc.codechecker.api.runtime.CodecheckerServerThread;
32+
import cc.codechecker.api.runtime.LogI;
33+
3034

3135
public class StartupJob extends Job {
3236

37+
3338

3439
EditorPartListener partListener;
35-
ProjectExplorerSelectionListener projectexplorerselectionlistener;
40+
ProjectExplorerSelectionListener projectexplorerselectionlistener;
3641

3742
public StartupJob() {
3843
super("CodeChecker Startup Job");
3944
partListener = new EditorPartListener();
4045
projectexplorerselectionlistener = new ProjectExplorerSelectionListener();
46+
SLogger.setLogger(new ExternalLogger());//setting up the eclips logger for the external service
4147
}
4248

4349
@Override
44-
protected IStatus run(IProgressMonitor monitor) {
50+
protected IStatus run(IProgressMonitor monitor) {
4551
if (PlatformUI.isWorkbenchRunning()) {
4652
runInUIThread(monitor);
4753
} else {

eclipse-plugin/service/cc.codechecker.service.api/src/main/java/cc/codechecker/api/job/report/list/ListList.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,21 @@
33
import cc.codechecker.api.action.bug.path.ProblemInfoRequest;
44
import cc.codechecker.api.action.result.ReportInfo;
55
import cc.codechecker.api.job.ProblemInfoJob;
6+
import cc.codechecker.api.runtime.LogI;
7+
import cc.codechecker.api.runtime.SLogger;
68

79
import com.google.common.base.Optional;
810
import com.google.common.collect.ImmutableList;
911
import com.google.common.collect.Multimap;
1012
import com.google.common.collect.TreeMultimap;
1113

12-
import org.apache.log4j.Logger;
13-
import org.apache.log4j.LogManager;
14-
import org.apache.log4j.Level;
15-
1614
import org.joda.time.Instant;
1715

1816
import java.util.Collection;
1917
import java.util.Set;
2018

2119
public class ListList {
2220

23-
private final static Logger logger = LogManager.getLogger(ListList.class.getName());
24-
2521
private final ListRequest request;
2622

2723
private final Multimap<String, ReportInfo> reports;
@@ -37,7 +33,7 @@ public ListList(ListRequest request) {
3733
void addReports(ImmutableList<ReportInfo> reports) {
3834
for (ReportInfo report : reports) {
3935
if (this.reports.containsValue(report)) {
40-
logger.log(Level.WARN, "Duplicate report in the result list: " + report);
36+
SLogger.log(LogI.WARNING, "Duplicate report in the result list: " + report);
4137
}
4238
this.reports.put(report.getCheckerId(), report);
4339
}

eclipse-plugin/service/cc.codechecker.service.api/src/main/java/cc/codechecker/api/job/report/list/SearchList.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,21 @@
33
import cc.codechecker.api.action.bug.path.ProblemInfoRequest;
44
import cc.codechecker.api.action.result.ReportInfo;
55
import cc.codechecker.api.job.ProblemInfoJob;
6+
import cc.codechecker.api.runtime.LogI;
7+
import cc.codechecker.api.runtime.SLogger;
68

79
import com.google.common.base.Optional;
810
import com.google.common.collect.ImmutableList;
911
import com.google.common.collect.Multimap;
1012
import com.google.common.collect.TreeMultimap;
1113

12-
import org.apache.log4j.Logger;
13-
import org.apache.log4j.LogManager;
14-
import org.apache.log4j.Level;
15-
1614
import org.joda.time.Instant;
1715

1816
import java.util.Collection;
1917
import java.util.Set;
2018

2119
public class SearchList {
2220

23-
private final static Logger LOGGER = LogManager.getLogger(SearchList.class.getName());
24-
2521
private final SearchRequest request;
2622

2723
private final Multimap<String, ReportInfo> reports;
@@ -37,7 +33,7 @@ public SearchList(SearchRequest request) {
3733
void addReports(ImmutableList<ReportInfo> reports) {
3834
for (ReportInfo report : reports) {
3935
if (this.reports.containsValue(report)) {
40-
LOGGER.log(Level.WARN, "Duplicate report in the result list: " + report);
36+
SLogger.log(LogI.WARNING, "Duplicate report in the result list: " + report);
4137
}
4238
this.reports.put(report.getCheckerId(), report);
4339
}

eclipse-plugin/service/cc.codechecker.service.api/src/main/java/cc/codechecker/api/runtime/CodeCheckEnvironmentChecker.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
import com.google.common.base.Optional;
66
import com.google.common.collect.ImmutableMap;
7-
8-
import org.apache.log4j.Logger;
9-
import org.apache.log4j.LogManager;
10-
import org.apache.log4j.Level;
7+
import cc.codechecker.api.runtime.SLogger;
118

129
import java.io.File;
1310
import java.io.IOException;
@@ -18,7 +15,6 @@
1815

1916
public class CodeCheckEnvironmentChecker {
2017

21-
private static final Logger logger = LogManager.getLogger(CodeCheckEnvironmentChecker.class.getName());
2218

2319
public final Optional<String> pythonEnvironment;
2420
public final String checkerDir; // root directory of CodeChecker
@@ -52,10 +48,10 @@ public CodeCheckEnvironmentChecker(Map<ConfigTypes,String> config_m) {
5248
config=config_m;
5349
if (!config.containsKey(ConfigTypes.PYTHON_PATH) || (config.containsKey(ConfigTypes.PYTHON_PATH) && config.get(ConfigTypes.PYTHON_PATH).isEmpty())){
5450
pythonEnvironment=Optional.absent();
55-
logger.log(Level.DEBUG, "pythonenv is not set");
51+
SLogger.log(LogI.INFO, "pythonenv is not set");
5652
}
5753
else{
58-
logger.log(Level.DEBUG, "pythonenv is set to:"+config.get("PYTHON_PATH"));
54+
SLogger.log(LogI.INFO, "pythonenv is set to:"+config.get("PYTHON_PATH"));
5955
pythonEnvironment=Optional.of(config.get(ConfigTypes.PYTHON_PATH));
6056
}
6157

@@ -70,10 +66,10 @@ public CodeCheckEnvironmentChecker(Map<ConfigTypes,String> config_m) {
7066
environmentAddList = new HashMap<String, String>(){{
7167
put("LD_LIBRARY_PATH", checkerDir + "/ld_logger/lib");
7268
put("_", checkerDir + "/bin/CodeChecker");
73-
put("CC_LOGGER_GCC_LIKE", getConfigValue(ConfigTypes.COMPILERS));
69+
put("CC_logger_GCC_LIKE", getConfigValue(ConfigTypes.COMPILERS));
7470
put("LD_PRELOAD","ldlogger.so");
75-
put("CC_LOGGER_FILE", getConfigValue(ConfigTypes.CHECKER_WORKSPACE) + "/compilation_commands.json.javarunner");
76-
put("CC_LOGGER_BIN", checkerDir + "/bin/ldlogger");
71+
put("CC_logger_FILE", getConfigValue(ConfigTypes.CHECKER_WORKSPACE) + "/compilation_commands.json.javarunner");
72+
put("CC_logger_BIN", checkerDir + "/bin/ldlogger");
7773
}};
7874

7975
if(pythonEnvironment.isPresent()) {
@@ -90,15 +86,15 @@ private static void getCheckerEnvironment(
9086
ShellExecutorHelper she = new ShellExecutorHelper(environmentBefore);
9187

9288
String cmd=codeCheckerCommand + " -h";
93-
logger.log(Level.DEBUG, "Testing " + cmd);
89+
SLogger.log(LogI.INFO, "Testing " + cmd);
9490
Optional<String> ccEnvOutput = she.quickReturnOutput(cmd);
9591
double test = 0;
9692
while(!ccEnvOutput.isPresent() && test <= 2){
9793
ccEnvOutput = she.quickReturnOutput(cmd, Math.pow( 2.0 , test ) * 1000);
9894
++test;
9995
}
10096
if (!ccEnvOutput.isPresent()) {
101-
logger.log(Level.ERROR, "Cannot run CodeChecker command:"+cmd);
97+
SLogger.log(LogI.ERROR, "Cannot run CodeChecker command:"+cmd);
10298
throw new IllegalArgumentException("Couldn't run the specified CodeChecker for " +
10399
"environment testing!");
104100
}
@@ -112,7 +108,7 @@ private static ImmutableMap<String, String> getInitialEnvironment(
112108
Optional<String> output = she.quickReturnOutput("source " + pythonEnvironment.get() + "/bin/activate" +
113109
" ; env");
114110
if (!output.isPresent()) {
115-
logger.log(Level.DEBUG, "SERVER_GUI_MSG >> Couldn't check the given python environment!");
111+
SLogger.log(LogI.INFO, "SERVER_GUI_MSG >> Couldn't check the given python environment!");
116112
throw new IllegalArgumentException("Couldn't check the given python environment!");
117113
} else {
118114
ImmutableMap<String, String> environment = (new EnvironmentParser()).parse(output
@@ -121,7 +117,7 @@ private static ImmutableMap<String, String> getInitialEnvironment(
121117
}
122118

123119
} else {
124-
logger.log(Level.DEBUG, "Python Env not specified. Using original system env.");
120+
SLogger.log(LogI.INFO, "Python Env not specified. Using original system env.");
125121
return ImmutableMap.copyOf(System.getenv());
126122
}
127123
}
@@ -188,7 +184,7 @@ public String processLog(String fileName) {
188184
ShellExecutorHelper she = new ShellExecutorHelper(environmentBefore);
189185
String cmd = createCheckCommmand(fileName);
190186

191-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> processLog >> "+ cmd);
187+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> processLog >> "+ cmd);
192188
Optional<String> ccOutput = she.waitReturnOutput(cmd);
193189

194190
if (ccOutput.isPresent()) {

eclipse-plugin/service/cc.codechecker.service.api/src/main/java/cc/codechecker/api/runtime/CodecheckerServerThread.java

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,9 @@
1212
import java.util.concurrent.BlockingQueue;
1313
import java.util.concurrent.LinkedBlockingDeque;
1414

15-
import org.apache.log4j.Logger;
16-
import org.apache.log4j.LogManager;
17-
import org.apache.log4j.Level;
1815

1916
public class CodecheckerServerThread {
2017

21-
//Logger
22-
private final static Logger logger = LogManager.getLogger(CodecheckerServerThread.class.getName());
2318

2419
private static Random random = new Random();
2520
public final int serverPort = random.nextInt(10000) + 15000;
@@ -41,7 +36,7 @@ public CodeCheckEnvironmentChecker getCodecheckerEnvironment() {
4136
}
4237

4338
public void setCodecheckerEnvironment(CodeCheckEnvironmentChecker newEnv) {
44-
logger.log(Level.DEBUG, "setCodeCheckerEnvironment is called.");
39+
SLogger.log(LogI.INFO, "setCodeCheckerEnvironment is called.");
4540
boolean restartNeeded = true;
4641
if (ccec!=null){
4742
Map<ConfigTypes, String> oldConfig = ccec.getConfig();
@@ -58,16 +53,16 @@ public void setCodecheckerEnvironment(CodeCheckEnvironmentChecker newEnv) {
5853

5954
public synchronized void start() {
6055
if (running) stop();
61-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> Starting CC");
56+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> Starting CC");
6257
if (ccec != null && serverExecutor == null) {
6358
final String cmd = ccec.createServerCommand(String.valueOf(serverPort));
6459
ShellExecutorHelper she = new ShellExecutorHelper(ccec.environmentBefore);
6560
serverExecutor = she.getServerObject(cmd);
6661
serverThread = new Thread(new Runnable() {
6762
public void run() {
68-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> started server thread");
69-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> HTTP server command: " + cmd);
70-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> HTTP server URL: " + getServerUrl());
63+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> started server thread");
64+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> HTTP server command: " + cmd);
65+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> HTTP server URL: " + getServerUrl());
7166
serverExecutor.start();
7267
}
7368
});
@@ -78,7 +73,7 @@ public void run() {
7873
@Override
7974
public void run() {
8075
try {
81-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> started queue thread");
76+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> started queue thread");
8277
while (true) {
8378
if(Thread.interrupted()) {
8479
break;
@@ -89,16 +84,16 @@ public void run() {
8984
}
9085
if (currentlyRunning.add(s)) {
9186
callback.analysisStarted(ccec.createCheckCommmand(s));
92-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> Queue size (-1): " + processingQueue
87+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> Queue size (-1): " + processingQueue
9388
.size() + " >> " + s);
9489
String checkResult=ccec.processLog(s);
95-
logger.log(Level.INFO, "SERVER_SER_MSG >> " + checkResult);
90+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> " + checkResult);
9691
currentlyRunning.remove(s);
9792
if (callback != null) callback.analysisFinished(checkResult);
9893
}
9994
}
10095
} catch (InterruptedException e) {
101-
logger.log(Level.ERROR, "SERVER_SER_MSG >> queueThread >> " + e);
96+
SLogger.log(LogI.ERROR, "SERVER_SER_MSG >> queueThread >> " + e);
10297
}
10398
}
10499
});
@@ -107,49 +102,49 @@ public void run() {
107102
}
108103

109104
public synchronized void stop() {
110-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> stopping CC");
105+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> stopping CC");
111106
if (serverExecutor != null) {
112-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> killing server thread");
107+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> killing server thread");
113108
serverExecutor.kill();
114109
serverThread.interrupt();
115110
serverThread = null;
116111
serverExecutor = null;
117112
}
118113
if (queueThread != null) {
119-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> killing queue thread");
114+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> killing queue thread");
120115
processingQueue.add("STOP!");
121116
queueThread.interrupt();
122117
queueThread = null;
123118
}
124119

125120
try {
126-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> Waiting...");
121+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> Waiting...");
127122
Thread.sleep(1000);
128-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> Done");
123+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> Done");
129124
} catch (Exception e) {
130-
logger.log(Level.ERROR, "SERVER_SER_MSG >> " + e);
131-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> " + e.getStackTrace());
125+
SLogger.log(LogI.ERROR, "SERVER_SER_MSG >> " + e);
126+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> " + e.getStackTrace());
132127
}
133128

134129
running = false;
135130
}
136131

137132
public void recheck() {
138-
logger.log(Level.DEBUG, "Recheck called");
133+
SLogger.log(LogI.INFO, "Recheck called");
139134
if (ccec != null) {
140135
Optional<String> newF = ccec.moveLogFile();
141136
if (newF.isPresent()) {
142137
try {
143138
processingQueue.put(newF.get());
144-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> Queue size (+1): " + processingQueue.size() +
139+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> Queue size (+1): " + processingQueue.size() +
145140
" << " + newF.get());
146141
} catch (InterruptedException e) {
147-
logger.log(Level.ERROR, "SERVER_SER_MSG >> " + e);
148-
logger.log(Level.DEBUG, "SERVER_SER_MSG >> " + e.getStackTrace());
142+
SLogger.log(LogI.ERROR, "SERVER_SER_MSG >> " + e);
143+
SLogger.log(LogI.INFO, "SERVER_SER_MSG >> " + e.getStackTrace());
149144
}
150145
}
151146
}else
152-
logger.log(Level.ERROR, "CodeChecker env is null!");
147+
SLogger.log(LogI.ERROR, "CodeChecker env is null!");
153148
}
154149

155150
public String getServerUrl() {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package cc.codechecker.api.runtime;
2+
3+
public interface LogI {
4+
//IStatus severities
5+
static int CANCEL=8;
6+
static int ERROR=4;
7+
static int INFO=1;
8+
static int OK=0;
9+
static int WARNING=2;
10+
public void log(int severity,String message);
11+
12+
}

0 commit comments

Comments
 (0)