Skip to content

Commit b4f68df

Browse files
committed
refactor: improve logging with structured arguments and contextual messages
Replace generic debug logs with structured logging using logstash-logback-encoder. Add contextual log messages (e.g., "Importing domain", "Creating contact") and move raw XML output to trace level with structured arguments for better log parsing and security.
1 parent 4921d9f commit b4f68df

8 files changed

Lines changed: 95 additions & 54 deletions

File tree

‎build.gradle‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ repositories {
2828
dependencies {
2929
implementation('ch.qos.logback:logback-classic:1.5.32')
3030
implementation('ch.qos.logback:logback-core:1.5.32')
31+
implementation('net.logstash.logback:logstash-logback-encoder:7.4')
3132
implementation('com.google.code.gson:gson:2.13.2')
3233
implementation('org.mariadb.jdbc:mariadb-java-client:3.5.7')
3334
implementation('org.apache.derby:derby:10.17.1.0')

‎src/main/java/com/codetotime/eppclient/config/ManageParameters.java‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
package com.codetotime.eppclient.config;
2222

23+
import static net.logstash.logback.argument.StructuredArguments.kv;
24+
2325
import com.codetotime.eppclient.CustomLogin;
2426
import com.codetotime.eppclient.ErrorHandler;
2527
import com.codetotime.eppclient.Main;
@@ -812,8 +814,6 @@ private void btnChangePwdActionPerformed(
812814
try {
813815
// sets the serverUri
814816
URI serverUri = new URI(EppParams.getParameter("EppClient.Epp.serverUri"));
815-
// creates a new client
816-
Client client = new Client(serverUri.toString());
817817

818818
// creates a login command with a valid account
819819
CustomLogin login =
@@ -823,16 +823,20 @@ private void btnChangePwdActionPerformed(
823823

824824
login.setNewPW(newPassword);
825825

826+
// creates a new client
827+
Client client = new Client(serverUri.toString());
828+
826829
// send the login command
827-
log.info("CLIENT: *LOGIN w/CHANGE PWD COMMAND OMITTED*");
830+
log.info("Changing EPP password");
831+
log.debug("EPP > login (password change request omitted for security)");
828832
HttpBaseResponse response = client.sendCommand(login);
829-
log.info("SERVER: {}", response.toString());
833+
log.trace("EPP < login", kv("raw_xml", response.toString()));
830834

831835
// send the logout command with verbose interaction
832836
Logout logout = new Logout();
833-
log.info("CLIENT: {}", logout.toString());
837+
log.trace("EPP > logout", kv("raw_xml", logout.xmlText()));
834838
response = client.sendCommand(logout);
835-
log.info("SERVER logout: {}", response.toString());
839+
log.trace("EPP < logout", kv("raw_xml", response.toString()));
836840

837841
defaultPassword.setText(newPassword);
838842
EppParams.setParameter("EppClient.defaultPassword", defaultPassword.getText());

‎src/main/java/com/codetotime/eppclient/contacts/ContactsManagement.java‎

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
package com.codetotime.eppclient.contacts;
2222

23+
import static net.logstash.logback.argument.StructuredArguments.kv;
24+
2325
import com.codetotime.eppclient.Main;
2426
import com.codetotime.eppclient.db.ContactsDao;
2527
import com.codetotime.eppclient.importer.ImportContact;
@@ -222,11 +224,12 @@ private void deleteAddress() {
222224

223225
try {
224226
// Delete the contact. The contact must not be linked with any domain name
227+
log.info("Deleting contact: {}", contactId);
225228
ContactDelete contactDelete = new ContactDelete();
226229
contactDelete.setId(contactId);
227-
log.debug("CLIENT: {}", contactDelete);
230+
log.trace("EPP > contactDelete", kv("raw_xml", contactDelete.xmlText()));
228231
HttpBaseResponse response = eppUplink.sendCommand(contactDelete);
229-
log.debug("SERVER: {}", response);
232+
log.trace("EPP < contactDelete", kv("raw_xml", response.toString()));
230233

231234
if (response.isSuccessfully()) {
232235
// db = new ContactsDao();
@@ -290,14 +293,17 @@ private void saveAddress() {
290293
String contactId = address.getContactId();
291294

292295
if (address.getIsNewContact()) {
296+
log.info("Creating contact: {}", contactId);
293297
if (address.getAutoContactId()) {
294298
while (true) {
295299
addressPanel.setContactId(address.getRandomContactId());
296300
ContactCheck contactCheck = new ContactCheck();
297301
contactCheck.addId(address.getContactId());
298302
try {
303+
log.trace(
304+
"EPP > contactCheck (id availability)", kv("raw_xml", contactCheck.xmlText()));
299305
HttpBaseResponse response = eppUplink.sendCommand(contactCheck);
300-
log.debug("SERVER: {}", response);
306+
log.trace("EPP < contactCheck (id availability)", kv("raw_xml", response.toString()));
301307
if (response.isSuccessfully()) {
302308
ContactCheckResponseResData resData =
303309
(ContactCheckResponseResData) response.getResponseResData();
@@ -350,9 +356,9 @@ private void saveAddress() {
350356
address.getNationalityCode(), address.getEntityType(), address.getRegCode());
351357
}
352358

353-
log.debug("CLIENT: {}", contactCreate);
359+
log.trace("EPP > contactCreate", kv("raw_xml", contactCreate.xmlText()));
354360
HttpBaseResponse response = eppUplink.sendCommand(contactCreate);
355-
log.debug("SERVER: {}", response);
361+
log.trace("EPP < contactCreate", kv("raw_xml", response.toString()));
356362

357363
if (response.isSuccessfully()) {
358364
// db = new ContactsDao();
@@ -391,12 +397,13 @@ private void saveAddress() {
391397
}
392398

393399
} else {
394-
400+
log.info("Updating contact: {}", contactId);
395401
try {
396402
ContactInfo contactInfo = new ContactInfo();
397403
contactInfo.setId(address.getContactId());
404+
log.trace("EPP > contactInfo (pre-update)", kv("raw_xml", contactInfo.xmlText()));
398405
HttpBaseResponse response = eppUplink.sendCommand(contactInfo);
399-
log.debug("ContactInfo PRIMA: {}", response);
406+
log.trace("EPP < contactInfo (pre-update)", kv("raw_xml", response.toString()));
400407
ContactInfoResponseResData contactInfoResData =
401408
(ContactInfoResponseResData) response.getResponseResData();
402409
ContactInfoResponseExt contactInfoExt =
@@ -446,9 +453,11 @@ private void saveAddress() {
446453
}
447454

448455
if (updateMigrated) {
449-
log.debug("CLIENT: {}", contactUpdate);
456+
log.trace(
457+
"EPP > contactUpdate (migrated fields)", kv("raw_xml", contactUpdate.xmlText()));
450458
response = eppUplink.sendCommand(contactUpdate);
451-
log.debug("SERVER: {}", response);
459+
log.trace(
460+
"EPP < contactUpdate (migrated fields)", kv("raw_xml", response.toString()));
452461

453462
if (!response.isSuccessfully()) {
454463
migratedUpdateOk = false;
@@ -490,9 +499,9 @@ private void saveAddress() {
490499

491500
contactUpdate.setExtConsForPub(address.getConsentForPublishing());
492501

493-
log.debug("CLIENT: {}", contactUpdate);
502+
log.trace("EPP > contactUpdate", kv("raw_xml", contactUpdate.xmlText()));
494503
response = eppUplink.sendCommand(contactUpdate);
495-
log.debug("SERVER: {}", response);
504+
log.trace("EPP < contactUpdate", kv("raw_xml", response.toString()));
496505

497506
if (response.isSuccessfully()) {
498507
db.editRecord(address);
@@ -544,9 +553,10 @@ private void checkContact() {
544553
contactCheck.addId(contactId);
545554
}
546555

547-
log.debug("CLIENT: {}", contactCheck);
556+
log.debug("Checking contact availability: {}", contactIds);
557+
log.trace("EPP > contactCheck", kv("raw_xml", contactCheck.xmlText()));
548558
HttpBaseResponse response = eppUplink.sendCommand(contactCheck);
549-
log.debug("SERVER: {}", response);
559+
log.trace("EPP < contactCheck", kv("raw_xml", response.toString()));
550560

551561
if (response.isSuccessfully()) {
552562
String msgAvailabilityResult = "";
@@ -594,9 +604,10 @@ private void infoContact() {
594604

595605
try {
596606
ContactInfo contactInfo = new ContactInfo(contactId);
597-
log.debug("CLIENT: {}", contactInfo);
607+
log.debug("Fetching raw info for contact: {}", contactId);
608+
log.trace("EPP > contactInfo", kv("raw_xml", contactInfo.xmlText()));
598609
HttpBaseResponse response = eppUplink.sendCommand(contactInfo);
599-
log.debug("SERVER: {}", response);
610+
log.trace("EPP < contactInfo", kv("raw_xml", response.toString()));
600611

601612
if (response.isSuccessfully()) {
602613
ContactRawInfo contactRawInfo = new ContactRawInfo(contactId, response.toString());

‎src/main/java/com/codetotime/eppclient/domains/DomainsManagement.java‎

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
package com.codetotime.eppclient.domains;
2222

23+
import static net.logstash.logback.argument.StructuredArguments.kv;
24+
2325
import com.codetotime.eppclient.Main;
2426
import com.codetotime.eppclient.db.DomainsDao;
2527
import com.codetotime.eppclient.domains.transfer.TransferManagement;
@@ -242,10 +244,11 @@ private void deleteDomain() {
242244
if (!domainName.equals("")) {
243245

244246
try {
247+
log.info("Deleting domain: {}", domainName);
245248
DomainDelete domainDelete = new DomainDelete(domainName);
246-
log.debug("CLIENT: {}", domainDelete);
249+
log.trace("EPP > domainDelete", kv("raw_xml", domainDelete.xmlText()));
247250
HttpBaseResponse response = eppUplink.sendCommand(domainDelete);
248-
log.debug("SERVER: {}", response);
251+
log.trace("EPP < domainDelete", kv("raw_xml", response.toString()));
249252

250253
if (response.isSuccessfully()) {
251254
Domain domain = domainPanel.getAddress();
@@ -304,6 +307,7 @@ private void saveAddress() {
304307
String domainName = domain.getDomainName();
305308

306309
if (domain.getOpType() == 1) {
310+
log.info("Creating domain: {}", domainName);
307311
try {
308312
DomainCreate domainCreate = new DomainCreate(domain.getDomainName());
309313
domainCreate.setRegistrant(domain.getRegistrant());
@@ -349,9 +353,9 @@ private void saveAddress() {
349353
(short) domain.getDigestType(),
350354
parseHex(domain.getDigest()));
351355
}
352-
log.debug("CLIENT: {}", domainCreate);
356+
log.trace("EPP > domainCreate", kv("raw_xml", domainCreate.xmlText()));
353357
HttpBaseResponse response = eppUplink.sendCommand(domainCreate);
354-
log.debug("SERVER: {}", response);
358+
log.trace("EPP < domainCreate", kv("raw_xml", response.toString()));
355359

356360
if (response.isSuccessfully()) {
357361
DomainCreateResponseResData domainCreateResData =
@@ -387,13 +391,14 @@ private void saveAddress() {
387391
}
388392

389393
} else {
390-
394+
log.info("Updating domain: {}", domainName);
391395
try {
392396
DomainInfo domainInfo = new DomainInfo();
393397
domainInfo.setName(domain.getDomainName());
398+
log.trace("EPP > domainInfo (pre-update)", kv("raw_xml", domainInfo.xmlText()));
394399
HttpBaseResponse response = eppUplink.sendCommand(domainInfo);
400+
log.trace("EPP < domainInfo (pre-update)", kv("raw_xml", response.toString()));
395401
if (response.isSuccessfully()) {
396-
log.debug("DomainInfo PRIMA: {}", response);
397402
DomainInfoResponseResData domainInfoResData =
398403
(DomainInfoResponseResData) response.getResponseResData();
399404

@@ -452,9 +457,11 @@ private void saveAddress() {
452457
// if changing Registrant make a custom update request
453458
domainUpdate.setRegistrant(domain.getRegistrant());
454459

455-
log.debug("CLIENT: {}", domainUpdate);
460+
log.trace(
461+
"EPP > domainUpdate (registrant change)", kv("raw_xml", domainUpdate.xmlText()));
456462
response = eppUplink.sendCommand(domainUpdate);
457-
log.debug("SERVER: {}", response);
463+
log.trace(
464+
"EPP < domainUpdate (registrant change)", kv("raw_xml", response.toString()));
458465

459466
domainUpdate = new DomainUpdate(domain.getDomainName());
460467
}
@@ -705,15 +712,18 @@ private void saveAddress() {
705712
}
706713
}
707714

708-
log.debug("CLIENT: {}", domainUpdate);
715+
log.trace("EPP > domainUpdate", kv("raw_xml", domainUpdate.xmlText()));
709716
response = eppUplink.sendCommand(domainUpdate);
710-
log.debug("SERVER: {}", response);
717+
log.trace("EPP < domainUpdate", kv("raw_xml", response.toString()));
711718

712719
if (response.isSuccessfully()
713720
|| (response.getResultCode() == 2003 && response.getReasonCode() == 9019)) {
714721

722+
log.trace(
723+
"EPP > domainInfo (post-update refresh)", kv("raw_xml", domainInfo.xmlText()));
715724
response = eppUplink.sendCommand(domainInfo);
716-
log.debug("DomainInfo DOPO: {}", response);
725+
log.trace(
726+
"EPP < domainInfo (post-update refresh)", kv("raw_xml", response.toString()));
717727

718728
domainInfoResData = (DomainInfoResponseResData) response.getResponseResData();
719729
domain.setExpire(domainInfoResData.getExDate().getTime());
@@ -825,10 +835,11 @@ private void infoDomain() {
825835
if (!domainName.equals("")) {
826836

827837
try {
838+
log.debug("Fetching raw info for domain: {}", domainName);
828839
DomainInfo domainInfo = new DomainInfo(domainName);
829-
log.debug("CLIENT: {}", domainInfo);
840+
log.trace("EPP > domainInfo", kv("raw_xml", domainInfo.xmlText()));
830841
HttpBaseResponse response = eppUplink.sendCommand(domainInfo);
831-
log.debug("SERVER: {}", response);
842+
log.trace("EPP < domainInfo", kv("raw_xml", response.toString()));
832843

833844
if (response.isSuccessfully()) {
834845
DomainRawInfo domainRawInfo = new DomainRawInfo(domainName, response.toString());
@@ -988,13 +999,15 @@ private void checkDomain() {
988999
null,
9891000
"");
9901001
try {
1002+
log.debug("Checking domain availability: {}", domains);
9911003
DomainCheck domainCheck = new DomainCheck();
9921004
for (String domainName : domains.split(";")) {
9931005
domainCheck.addName(domainName);
9941006
}
9951007

1008+
log.trace("EPP > domainCheck", kv("raw_xml", domainCheck.xmlText()));
9961009
HttpBaseResponse response = eppUplink.sendCommand(domainCheck);
997-
log.debug("SERVER: {}", response);
1010+
log.trace("EPP < domainCheck", kv("raw_xml", response.toString()));
9981011

9991012
if (response.isSuccessfully()) {
10001013
String msgAvailabilityResult = "";
@@ -1056,9 +1069,10 @@ public void restoreDomain() {
10561069

10571070
try {
10581071

1059-
log.debug("CLIENT: {}", domainUpdate);
1072+
log.info("Restoring domain from RGP: {}", domainName);
1073+
log.trace("EPP > domainUpdate (RGP restore)", kv("raw_xml", domainUpdate.xmlText()));
10601074
HttpBaseResponse response = eppUplink.sendCommand(domainUpdate);
1061-
log.debug("SERVER: {}", response);
1075+
log.trace("EPP < domainUpdate (RGP restore)", kv("raw_xml", response.toString()));
10621076
if (response.isSuccessfully()) {
10631077
ImportDomain syncDomain = new ImportDomain(mainFrame, true);
10641078
if (syncDomain.execute(domainName)) {

‎src/main/java/com/codetotime/eppclient/domains/transfer/TransferManagement.java‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
package com.codetotime.eppclient.domains.transfer;
2222

23+
import static net.logstash.logback.argument.StructuredArguments.kv;
24+
2325
import com.codetotime.eppclient.uplink.EppUplink;
2426
import it.nic.epp.client.commands.transform.DomainTransfer;
2527
import it.nic.epp.client.exceptions.EppSchemaException;
@@ -150,7 +152,8 @@ private void requestTransfer() {
150152
}
151153
}
152154

153-
log.info("CLIENT transfer request: {}", domainTransfer.toString());
155+
log.info("Requesting domain transfer: {}", domain.getDomainName());
156+
log.trace("EPP > domainTransfer", kv("raw_xml", domainTransfer.xmlText()));
154157
HttpBaseResponse response = eppUplink.sendCommand(domainTransfer);
155158

156159
if (response.isSuccessfully()) {
@@ -183,7 +186,7 @@ private void requestTransfer() {
183186
canClose = false;
184187
}
185188

186-
log.info("SERVER transfer response: {}", response.toString());
189+
log.trace("EPP < domainTransfer", kv("raw_xml", response.toString()));
187190

188191
} catch (NullPointerException v) {
189192
log.error("NullPointerException in requestTransfer", v);
@@ -213,7 +216,8 @@ private void requestTransfer() {
213216
domainTransfer.setAuthInfo(bulkRequestEntries[1]);
214217
domainTransfer.setTransferRequest();
215218

216-
log.info("CLIENT bulk transfer request: {}", domainTransfer.toString());
219+
log.info("Requesting bulk domain transfer for: {}", bulkRequestEntries[0]);
220+
log.trace("EPP > domainTransfer (bulk)", kv("raw_xml", domainTransfer.xmlText()));
217221
HttpBaseResponse response = eppUplink.sendCommand(domainTransfer);
218222

219223
if (response.isSuccessfully()) {
@@ -236,7 +240,7 @@ private void requestTransfer() {
236240
JOptionPane.showMessageDialog(this, response.toString());
237241
}
238242
}
239-
log.info("SERVER bulk transfer response: {}", response.toString());
243+
log.trace("EPP < domainTransfer (bulk)", kv("raw_xml", response.toString()));
240244

241245
} catch (NullPointerException v) {
242246
log.error("NullPointerException in bulk transfer", v);

‎src/main/java/com/codetotime/eppclient/importer/ImportDomain.java‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020

2121
package com.codetotime.eppclient.importer;
2222

23+
import static net.logstash.logback.argument.StructuredArguments.kv;
24+
2325
import com.codetotime.eppclient.Main;
2426
import com.codetotime.eppclient.db.ContactsDao;
2527
import com.codetotime.eppclient.db.DomainsDao;
@@ -68,9 +70,10 @@ public boolean execute(String domainName) {
6870

6971
try {
7072

71-
log.debug("CLIENT: {}", domainInfo);
73+
log.debug("Importing domain: {}", domainName);
74+
log.trace("EPP > domainInfo", kv("raw_xml", domainInfo.xmlText()));
7275
HttpBaseResponse response = eppUplink.sendCommand(domainInfo);
73-
log.debug("SERVER: {}", response);
76+
log.trace("EPP < domainInfo", kv("raw_xml", response.toString()));
7477

7578
if (response.isSuccessfully()) {
7679
DomainInfoResponseResData domainInfoResData =

0 commit comments

Comments
 (0)