Reflection-based suite of facades over Logger, that provides logging of complex objects.
Print Tool (print-tool) on GitHub
Overview
—————–
Some time, it’s necessary to save in log complex objects (VO, DTO, Entities and some other POJO).
The main features of Print Tool:
– facade over Logger, that allows to solve (using reflection) and print header and footer of output of some function; in this case you don’t need to care about name of function, if it has been renamed/re-factored;
private static final IPrintTool printTool = PrintTool.getPrintToolInstance(LoggerFactory.getLogger(TestPrintTool.class)); public void testPrintTool() { printTool.debug(PrintSfx.SFX_IN); // some code here printTool.debug(PrintSfx.SFX_OUT); }
– provides solving of all fields of complex objects (including aggregated objects) and print values of all fields; in this case you need to use only:
IpVO ipVO; AddressReqVO addressReqVO; // init of objects ipVO and addressReqVO printTool.info(ipVO); printTool.info(addressReqVO);
– provides interface, that allow to override print of complex objects
(please, see interface com.smansoft.tools.print.api.IPrintable in sources);
As result, usage of Print Tool in function:
private static final IPrintTool printTool = PrintTool.getPrintToolInstance(LoggerFactory.getLogger(TestPrintTool.class)); @Test public void testPrintTool() { printTool.debug(PrintSfx.SFX_IN); printTool.info(ipVO); printTool.info(addressReqVO); printTool.debug(PrintSfx.SFX_OUT); Assert.assertTrue(true); }
generates follow log output:
print-tool-tests.log
You can find sources of Print Tool here:
Print Tool (print-tool) on GitHub
Please, see example of usage of the Print Tool in Unit Test code. Also you can find usage of this project here:
Spring Login (Stack Templates)