Skip to content

Commit 09fcff0

Browse files
tony-goTony Gorez
andauthored
feat: add base logger (#73)
* feat: add base logger * test: update according to new logs * test: change assertion * test: add test for error with CLI * feat: prefix warn and err message with labels * revert: add level into warn and err logger * feat: add log level with %l * feat: add patch for lief log level * chore: remove log level stuff after generating the patch file * feat: add log level in cpp code via vendorpull --------- Co-authored-by: Tony Gorez <[email protected]>
1 parent e6f79ac commit 09fcff0

File tree

4 files changed

+60
-6
lines changed

4 files changed

+60
-6
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: Tony Gorez <[email protected]>
3+
Date: Thu, 2 Mar 2023 09:53:36 +0100
4+
Subject: [PATCH] feat: add log level with %l
5+
6+
---
7+
src/logging.cpp | 2 +-
8+
1 file changed, 1 insertion(+), 1 deletion(-)
9+
10+
diff --git a/src/logging.cpp b/src/logging.cpp
11+
index 63e0e0e..3a4e567 100644
12+
--- a/src/logging.cpp
13+
+++ b/src/logging.cpp
14+
@@ -52,7 +52,7 @@ Logger::Logger() {
15+
16+
17+
sink_->set_level(spdlog::level::warn);
18+
- sink_->set_pattern("%v");
19+
+ sink_->set_pattern("%l: %v");
20+
sink_->flush_on(spdlog::level::warn);
21+
}
22+
}
23+
--
24+
2.37.1 (Apple Git-137.1)
25+

src/cli.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ const { constants, promises: fs } = require("fs");
55
const path = require("path");
66
const { inject } = require("./api.js");
77

8+
const logger = {
9+
info: (message) => console.log("\x1b[36m%s\x1b[0m", message),
10+
success: (message) => console.log("\x1b[32m%s\x1b[0m", message),
11+
error: (message) => console.log("\x1b[31mError: %s\x1b[0m", message),
12+
};
13+
814
async function main(filename, resourceName, resource, options) {
915
if (options.outputApiHeader) {
1016
// Handles --output-api-header.
@@ -20,18 +26,22 @@ async function main(filename, resourceName, resource, options) {
2026
await fs.access(resource, constants.R_OK);
2127
resourceData = await fs.readFile(resource);
2228
} catch {
23-
console.log("Can't read resource file");
29+
logger.error("Can't read resource file");
2430
process.exit(1);
2531
}
2632

2733
try {
34+
logger.info(
35+
"Start injection of " + resourceName + " in " + filename + "..."
36+
);
2837
await inject(filename, resourceName, resourceData, {
2938
machoSegmentName: options.machoSegmentName,
3039
overwrite: options.overwrite,
3140
sentinelFuse: options.sentinelFuse,
3241
});
42+
logger.success("💉 Injection done!");
3343
} catch (err) {
34-
console.log(err.message);
44+
logger.error(err.message);
3545
process.exit(1);
3646
}
3747
}

test/cli.mjs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,8 @@ describe("postject CLI", () => {
8585
],
8686
{ encoding: "utf-8" }
8787
);
88-
// TODO(dsanders11) - Enable this once we squelch LIEF warnings
89-
// expect(stderr).to.be.empty;
90-
expect(stdout).to.be.empty;
88+
expect(stderr).to.be.empty;
89+
expect(stdout).to.have.string("Injection done!");
9190
expect(status).to.equal(0);
9291
}
9392

@@ -116,6 +115,26 @@ describe("postject CLI", () => {
116115
expect(stdout).to.have.string(resourceContents);
117116
}
118117
}).timeout(3_00_000);
118+
119+
it("should display an error message when filename doesn't exist", async () => {
120+
{
121+
const { status, stdout, stderr } = spawnSync(
122+
"node",
123+
[
124+
"./dist/cli.js",
125+
"unknown-filename",
126+
"foobar",
127+
resourceFilename,
128+
"--sentinel-fuse",
129+
"NODE_JS_FUSE_fce680ab2cc467b6e072b8b5df1996b2",
130+
],
131+
{ encoding: "utf-8" }
132+
);
133+
expect(stdout).to.have.string("Error: Can't read and write to target executable");
134+
expect(stdout).to.not.have.string("Injection done!");
135+
expect(status).to.equal(1);
136+
}
137+
}).timeout(3_00_000);
119138
});
120139

121140
describe("postject API", () => {

vendor/lief/src/logging.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Logger::Logger() {
5252

5353

5454
sink_->set_level(spdlog::level::warn);
55-
sink_->set_pattern("%v");
55+
sink_->set_pattern("%l: %v");
5656
sink_->flush_on(spdlog::level::warn);
5757
}
5858
}

0 commit comments

Comments
 (0)