You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ma...@apache.org on 2021/02/21 20:57:27 UTC

svn commit: r1886770 [7/10] - in /poi/trunk: ./ legal/ maven/ osgi/ sonar/ sonar/excelant/ sonar/integration-test/ sonar/main/ sonar/ooxml/ sonar/scratchpad/ src/examples/src/org/apache/poi/examples/hssf/usermodel/ src/integrationtest/ src/integrationt...

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFColumnShifter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFColumnShifter.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFColumnShifter.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFColumnShifter.java Sun Feb 21 20:57:25 2021
@@ -17,11 +17,11 @@
 
 package org.apache.poi.xssf.usermodel.helpers;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ss.formula.FormulaShifter;
 import org.apache.poi.ss.usermodel.helpers.ColumnShifter;
 import org.apache.poi.util.Beta;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 
 /**
@@ -33,7 +33,7 @@ import org.apache.poi.xssf.usermodel.XSS
 // {@link org.apache.poi.hssf.usermodel.helpers.HSSFColumnShifter}
 @Beta
 public final class XSSFColumnShifter extends ColumnShifter {
-    private static final POILogger LOG = POILogFactory.getLogger(XSSFColumnShifter.class);
+    private static final Logger LOG = LogManager.getLogger(XSSFColumnShifter.class);
 
     public XSSFColumnShifter(XSSFSheet sh) {
         super(sh);

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowColShifter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowColShifter.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowColShifter.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowColShifter.java Sun Feb 21 20:57:25 2021
@@ -17,6 +17,8 @@
 
 package org.apache.poi.xssf.usermodel.helpers;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ss.formula.FormulaShifter;
 import org.apache.poi.ss.formula.FormulaParser;
 import org.apache.poi.ss.formula.FormulaType;
@@ -27,14 +29,14 @@ import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.usermodel.helpers.BaseRowColShifter;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.util.Internal;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.usermodel.*;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import static org.apache.logging.log4j.util.Unbox.box;
+
 /**
  * Class for code common to {@link XSSFRowShifter} and {@link XSSFColumnShifter}
  *
@@ -42,7 +44,7 @@ import java.util.List;
  */
 @Internal
 /*private*/ final class XSSFRowColShifter {
-    private static final POILogger LOG = POILogFactory.getLogger(XSSFRowColShifter.class);
+    private static final Logger LOG = LogManager.getLogger(XSSFRowColShifter.class);
 
     private XSSFRowColShifter() { /*no instances for static classes*/}
 
@@ -151,7 +153,7 @@ import java.util.List;
             return shiftedFmla;
         } catch (FormulaParseException fpe) {
             // Log, but don't change, rather than breaking
-            LOG.log(POILogger.WARN, "Error shifting formula on row ", row.getRowNum(), fpe);
+            LOG.atWarn().withThrowable(fpe).log("Error shifting formula on row {}", box(row.getRowNum()));
             return formula;
         }
     }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java Sun Feb 21 20:57:25 2021
@@ -17,11 +17,11 @@
 
 package org.apache.poi.xssf.usermodel.helpers;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ss.formula.FormulaShifter;
 import org.apache.poi.ss.usermodel.helpers.RowShifter;
 import org.apache.poi.util.Internal;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 
@@ -31,7 +31,7 @@ import org.apache.poi.xssf.usermodel.XSS
 // non-Javadoc: When possible, code should be implemented in the RowShifter abstract class to avoid duplication with
 // {@link org.apache.poi.hssf.usermodel.helpers.HSSFRowShifter}
 public final class XSSFRowShifter extends RowShifter {
-    private static final POILogger LOG = POILogFactory.getLogger(XSSFRowShifter.class);
+    private static final Logger LOG = LogManager.getLogger(XSSFRowShifter.class);
 
     public XSSFRowShifter(XSSFSheet sh) {
         super(sh);

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java Sun Feb 21 20:57:25 2021
@@ -36,6 +36,8 @@ import java.util.Map;
 
 import javax.xml.namespace.QName;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ooxml.POIXMLDocument;
 import org.apache.poi.ooxml.POIXMLDocumentPart;
 import org.apache.poi.ooxml.POIXMLException;
@@ -55,8 +57,6 @@ import org.apache.poi.openxml4j.opc.Targ
 import org.apache.poi.poifs.crypt.HashAlgorithm;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.wp.usermodel.HeaderFooterType;
 import org.apache.poi.xddf.usermodel.chart.XDDFChart;
 import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
@@ -81,7 +81,7 @@ import org.openxmlformats.schemas.wordpr
  */
 @SuppressWarnings("unused")
 public class XWPFDocument extends POIXMLDocument implements Document, IBody {
-    private static final POILogger LOG = POILogFactory.getLogger(XWPFDocument.class);
+    private static final Logger LOG = LogManager.getLogger(XWPFDocument.class);
 
     protected List<XWPFFooter> footers = new ArrayList<>();
     protected List<XWPFHeader> headers = new ArrayList<>();
@@ -310,7 +310,7 @@ public class XWPFDocument extends POIXML
     /**
      * returns an Iterator with paragraphs and tables
      *
-     * @see org.apache.poi.xwpf.usermodel.IBody#getBodyElements()
+     * @see IBody#getBodyElements()
      */
     @Override
     public List<IBodyElement> getBodyElements() {
@@ -322,7 +322,7 @@ public class XWPFDocument extends POIXML
     }
 
     /**
-     * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphs()
+     * @see IBody#getParagraphs()
      */
     @Override
     public List<XWPFParagraph> getParagraphs() {
@@ -330,7 +330,7 @@ public class XWPFDocument extends POIXML
     }
 
     /**
-     * @see org.apache.poi.xwpf.usermodel.IBody#getTables()
+     * @see IBody#getTables()
      */
     @Override
     public List<XWPFTable> getTables() {
@@ -345,7 +345,7 @@ public class XWPFDocument extends POIXML
     }
 
     /**
-     * @see org.apache.poi.xwpf.usermodel.IBody#getTableArray(int)
+     * @see IBody#getTableArray(int)
      */
     @Override
     public XWPFTable getTableArray(int pos) {
@@ -629,9 +629,9 @@ public class XWPFDocument extends POIXML
 
     /**
      * Add a new paragraph at position of the cursor. The cursor must be on the
-     * {@link org.apache.xmlbeans.XmlCursor.TokenType#START} tag of an subelement
+     * {@link XmlCursor.TokenType#START} tag of an subelement
      * of the documents body. When this method is done, the cursor passed as
-     * parameter points to the {@link org.apache.xmlbeans.XmlCursor.TokenType#END}
+     * parameter points to the {@link XmlCursor.TokenType#END}
      * of the newly inserted paragraph.
      *
      * @param cursor The cursor-position where the new paragraph should be added.
@@ -1010,7 +1010,7 @@ public class XWPFDocument extends POIXML
                     int level = Integer.parseInt(parStyle.substring("Heading".length()));
                     toc.addRow(level, par.getText(), 1, "112723803");
                 } catch (NumberFormatException e) {
-                    LOG.log(POILogger.ERROR, "can't format number in TOC heading", e);
+                    LOG.atError().withThrowable(e).log("can't format number in TOC heading");
                 }
             }
         }
@@ -1542,7 +1542,7 @@ public class XWPFDocument extends POIXML
      *
      * @param ctTbl
      * @return a table by its CTTbl-Object or null
-     * @see org.apache.poi.xwpf.usermodel.IBody#getTable(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl)
+     * @see IBody#getTable(CTTbl)
      */
     @Override
     public XWPFTable getTable(CTTbl ctTbl) {
@@ -1565,7 +1565,7 @@ public class XWPFDocument extends POIXML
     /**
      * Returns the paragraph that of position pos
      *
-     * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int)
+     * @see IBody#getParagraphArray(int)
      */
     @Override
     public XWPFParagraph getParagraphArray(int pos) {
@@ -1580,7 +1580,7 @@ public class XWPFDocument extends POIXML
      * Actually it is needed of the class XWPFTableCell. Because you have to know to which part the tableCell
      * belongs.
      *
-     * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
+     * @see IBody#getPart()
      */
     @Override
     public POIXMLDocumentPart getPart() {
@@ -1592,7 +1592,7 @@ public class XWPFDocument extends POIXML
      * get the PartType of the body, for example
      * DOCUMENT, HEADER, FOOTER, FOOTNOTE,
      *
-     * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
+     * @see IBody#getPartType()
      */
     @Override
     public BodyType getPartType() {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestListParts.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestListParts.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestListParts.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestListParts.java Sun Feb 21 20:57:25 2021
@@ -24,15 +24,15 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.TreeMap;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 public final class TestListParts {
-    private static final POILogger LOG = POILogFactory.getLogger(TestListParts.class);
+    private static final Logger LOG = LogManager.getLogger(TestListParts.class);
 
 	private TreeMap<PackagePartName, String> expectedValues;
 
@@ -91,7 +91,7 @@ public final class TestListParts {
 
 			for (PackagePart part : p.getParts()) {
 				values.put(part.getPartName(), part.getContentType());
-				LOG.log(POILogger.DEBUG, part.getPartName());
+				LOG.atDebug().log(part.getPartName());
 			}
 
 			// Compare expected values with values return by the package

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java Sun Feb 21 20:57:25 2021
@@ -58,6 +58,8 @@ import com.google.common.io.Files;
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
 import org.apache.commons.compress.archivers.zip.ZipFile;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.POITestCase;
@@ -78,8 +80,6 @@ import org.apache.poi.sl.usermodel.Slide
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.TempFile;
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
@@ -98,7 +98,7 @@ import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 public final class TestPackage {
-    private static final POILogger LOG = POILogFactory.getLogger(TestPackage.class);
+    private static final Logger LOG = LogManager.getLogger(TestPackage.class);
 	private static final String NS_OOXML_WP_MAIN = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
 	private static final String CONTENT_EXT_PROPS = "application/vnd.openxmlformats-officedocument.extended-properties+xml";
 	private static final POIDataSamples xlsSamples = POIDataSamples.getSpreadSheetInstance();
@@ -458,7 +458,7 @@ public final class TestPackage {
 
 				for (PackagePart part : p.getParts()) {
 					values.put(part.getPartName(), part.getContentType());
-					LOG.log(POILogger.DEBUG, part.getPartName());
+					LOG.atDebug().log(part.getPartName());
 				}
 
 				// Compare expected values with values return by the package
@@ -492,7 +492,7 @@ public final class TestPackage {
 
 				for (PackagePart part : p.getParts()) {
 					values.put(part.getPartName(), part.getContentType());
-					LOG.log(POILogger.DEBUG, part.getPartName());
+					LOG.atDebug().log(part.getPartName());
 				}
 
 				// Compare expected values with values return by the package

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestRelationships.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestRelationships.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestRelationships.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestRelationships.java Sun Feb 21 20:57:25 2021
@@ -30,9 +30,9 @@ import java.io.InputStream;
 import java.net.URI;
 import java.util.regex.Pattern;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.junit.jupiter.api.Test;
 
 
@@ -44,7 +44,7 @@ class TestRelationships {
 	private static final String SHEET_WITH_COMMENTS =
 		"/xl/worksheets/sheet1.xml";
 
-    private static final POILogger LOG = POILogFactory.getLogger(TestPackageCoreProperties.class);
+    private static final Logger LOG = LogManager.getLogger(TestPackageCoreProperties.class);
 
     /**
      * Test relationships are correctly loaded. This at the moment fails (as of r499)
@@ -56,7 +56,7 @@ class TestRelationships {
     void testLoadRelationships() throws Exception {
         InputStream is = openSampleStream("sample.xlsx");
         try (OPCPackage pkg = OPCPackage.open(is)) {
-            LOG.log(POILogger.DEBUG, "1: " + pkg);
+            LOG.atDebug().log("1: {}", pkg);
             PackageRelationshipCollection rels = pkg.getRelationshipsByType(PackageRelationshipTypes.CORE_DOCUMENT);
             PackageRelationship coreDocRelationship = rels.getRelationship(0);
             PackagePart corePart = pkg.getPart(coreDocRelationship);

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java Sun Feb 21 20:57:25 2021
@@ -78,6 +78,8 @@ import javax.xml.crypto.dsig.XMLSignatur
 import javax.xml.crypto.dsig.dom.DOMSignContext;
 
 import org.apache.jcp.xml.dsig.internal.dom.DOMSignedInfo;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.ooxml.POIXMLDocument;
@@ -101,8 +103,6 @@ import org.apache.poi.poifs.storage.RawD
 import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.TempFile;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
@@ -162,7 +162,7 @@ import org.w3.x2000.x09.xmldsig.Signatur
 import org.w3c.dom.Document;
 
 class TestSignatureInfo {
-    private static final POILogger LOG = POILogFactory.getLogger(TestSignatureInfo.class);
+    private static final Logger LOG = LogManager.getLogger(TestSignatureInfo.class);
     private static final POIDataSamples testdata = POIDataSamples.getXmlDSignInstance();
 
     private static Calendar cal;
@@ -357,7 +357,7 @@ class TestSignatureInfo {
                 assertNotNull(result);
                 assertEquals(1, result.size(), "test-file: " + testFile);
                 X509Certificate signer = result.get(0);
-                LOG.log(POILogger.DEBUG, "signer: ", signer.getSubjectX500Principal());
+                LOG.atDebug().log("signer: {}", signer.getSubjectX500Principal());
 
                 boolean b = si.verifySignature();
                 assertTrue(b, "test-file: " + testFile);
@@ -385,8 +385,8 @@ class TestSignatureInfo {
             assertEquals(2, result.size(), "test-file: " + testFile);
             X509Certificate signer1 = result.get(0);
             X509Certificate signer2 = result.get(1);
-            LOG.log(POILogger.DEBUG, "signer 1: ", signer1.getSubjectX500Principal());
-            LOG.log(POILogger.DEBUG, "signer 2: ", signer2.getSubjectX500Principal());
+            LOG.atDebug().log("signer 1: {}", signer1.getSubjectX500Principal());
+            LOG.atDebug().log("signer 2: {}", signer2.getSubjectX500Principal());
 
             boolean b = si.verifySignature();
             assertTrue(b, "test-file: " + testFile);
@@ -527,8 +527,8 @@ class TestSignatureInfo {
             } else {
                 TimeStampServiceValidator tspValidator = (validateChain, revocationData) -> {
                     for (X509Certificate certificate : validateChain) {
-                        LOG.log(POILogger.DEBUG, "certificate: ", certificate.getSubjectX500Principal());
-                        LOG.log(POILogger.DEBUG, "validity: ", certificate.getNotBefore(), " - ", certificate.getNotAfter());
+                        LOG.atDebug().log("certificate: {}", certificate.getSubjectX500Principal());
+                        LOG.atDebug().log("validity: {} - {}", certificate.getNotBefore(), certificate.getNotAfter());
                     }
                 };
                 signatureConfig.setTspValidator(tspValidator);

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/ss/tests/TestWorkbookFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/ss/tests/TestWorkbookFactory.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/ss/tests/TestWorkbookFactory.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/ss/tests/TestWorkbookFactory.java Sun Feb 21 20:57:25 2021
@@ -34,6 +34,8 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.stream.Stream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.EmptyFileException;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.POIDataSamples;
@@ -44,9 +46,6 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.usermodel.WorkbookFactory;
-import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.SuppressForbidden;
 import org.apache.poi.util.TempFile;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -63,7 +62,7 @@ public final class TestWorkbookFactory {
     private static final String[] xlsx_protected = new String[]{"protected_passtika.xlsx", "tika"};
     private static final String txt = "SampleSS.txt";
 
-    private static final POILogger LOGGER = POILogFactory.getLogger(TestWorkbookFactory.class);
+    private static final Logger LOGGER = LogManager.getLogger(TestWorkbookFactory.class);
 
     /**
      * Closes the sample workbook read in from filename.
@@ -95,8 +94,7 @@ public final class TestWorkbookFactory {
                 xwb.close();
             } else {
                 // TODO: close() re-writes the sample-file?! Resort to revert() for now to close file handle...
-                LOGGER.log(POILogger.WARN,
-                    "reverting XSSFWorkbook rather than closing it to avoid close() modifying the file on disk. Refer to bug 58779.");
+                LOGGER.atWarn().log("reverting XSSFWorkbook rather than closing it to avoid close() modifying the file on disk. Refer to bug 58779.");
                 xwb.getPackage().revert();
             }
         } else {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java Sun Feb 21 20:57:25 2021
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xssf.usermodel;
 
+import static org.apache.logging.log4j.util.Unbox.box;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -28,6 +29,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.stream.Stream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackageAccess;
@@ -40,8 +43,6 @@ import org.apache.poi.ss.usermodel.Formu
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
@@ -58,9 +59,9 @@ import org.junit.jupiter.params.provider
  *
  */
 public final class TestFormulaEvaluatorOnXSSF {
-    private static final POILogger LOG = POILogFactory.getLogger(TestFormulaEvaluatorOnXSSF.class);
+    private static final Logger LOG = LogManager.getLogger(TestFormulaEvaluatorOnXSSF.class);
 
-    private static XSSFWorkbook workbook;
+	private static XSSFWorkbook workbook;
     private static Sheet sheet;
     private static FormulaEvaluator evaluator;
     private static Locale userLocale;
@@ -244,12 +245,12 @@ public final class TestFormulaEvaluatorO
 	 */
 	private static String getTargetFunctionName(Row r) {
 		if(r == null) {
-            LOG.log(POILogger.WARN, "Warning - given null row, can't figure out function name");
+            LOG.atWarn().log("Given null row, can't figure out function name");
 			return null;
 		}
 		Cell cell = r.getCell(SS.COLUMN_INDEX_FUNCTION_NAME);
 		if(cell == null) {
-            LOG.log(POILogger.WARN, "Warning - Row " + r.getRowNum() + " has no cell " + SS.COLUMN_INDEX_FUNCTION_NAME + ", can't figure out function name");
+			LOG.atWarn().log("Row {} has no cell " + SS.COLUMN_INDEX_FUNCTION_NAME + ", can't figure out function name", box(r.getRowNum()));
 			return null;
 		}
 		if(cell.getCellType() == CellType.BLANK) {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMatrixFormulasFromXMLSpreadsheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMatrixFormulasFromXMLSpreadsheet.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMatrixFormulasFromXMLSpreadsheet.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMatrixFormulasFromXMLSpreadsheet.java Sun Feb 21 20:57:25 2021
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xssf.usermodel;
 
+import static org.apache.logging.log4j.util.Unbox.box;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -27,6 +28,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.stream.Stream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ss.formula.eval.ErrorEval;
 import org.apache.poi.ss.formula.functions.BaseTestNumeric;
 import org.apache.poi.ss.usermodel.Cell;
@@ -36,8 +39,6 @@ import org.apache.poi.ss.usermodel.Formu
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -46,7 +47,7 @@ import org.junit.jupiter.params.provider
 
 public final class TestMatrixFormulasFromXMLSpreadsheet {
 
-    private static final POILogger LOG = POILogFactory.getLogger(TestMatrixFormulasFromXMLSpreadsheet.class);
+    private static final Logger LOG = LogManager.getLogger(TestMatrixFormulasFromXMLSpreadsheet.class);
 
     private static XSSFWorkbook workbook;
     private static Sheet sheet;
@@ -208,13 +209,13 @@ public final class TestMatrixFormulasFro
      */
     private static String getTargetFunctionName(Row r) {
         if(r == null) {
-            LOG.log(POILogger.WARN, "Warning - given null row, can't figure out function name");
+            LOG.atWarn().log("Given null row, can't figure out function name");
             return null;
         }
         Cell cell = r.getCell(Navigator.START_OPERATORS_COL_INDEX);
-        LOG.log(POILogger.DEBUG, String.valueOf(Navigator.START_OPERATORS_COL_INDEX));
+        LOG.atDebug().log( box(Navigator.START_OPERATORS_COL_INDEX));
         if(cell == null) {
-            LOG.log(POILogger.WARN, "Warning - Row " + r.getRowNum() + " has no cell " + Navigator.START_OPERATORS_COL_INDEX + ", can't figure out function name");
+            LOG.atWarn().log("Row {} has no cell " + Navigator.START_OPERATORS_COL_INDEX + ", can't figure out function name", box(r.getRowNum()));
             return null;
         }
 

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMultiSheetFormulaEvaluatorOnXSSF.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMultiSheetFormulaEvaluatorOnXSSF.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMultiSheetFormulaEvaluatorOnXSSF.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMultiSheetFormulaEvaluatorOnXSSF.java Sun Feb 21 20:57:25 2021
@@ -17,6 +17,9 @@
 
 package org.apache.poi.xssf.usermodel;
 
+import static org.apache.logging.log4j.util.Unbox.box;
+import static org.apache.poi.xssf.usermodel.TestMultiSheetFormulaEvaluatorOnXSSF.SS.COLUMN_INDEX_FUNCTION_NAME;
+import static org.apache.poi.xssf.usermodel.TestMultiSheetFormulaEvaluatorOnXSSF.SS.COLUMN_INDEX_TEST_NAME;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -28,6 +31,8 @@ import java.util.List;
 import java.util.Locale;
 import java.util.stream.Stream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackageAccess;
@@ -38,8 +43,6 @@ import org.apache.poi.ss.usermodel.CellV
 import org.apache.poi.ss.usermodel.FormulaEvaluator;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
@@ -49,9 +52,9 @@ import org.junit.jupiter.params.provider
  * Tests formulas for multi sheet reference (i.e. SUM(Sheet1:Sheet5!A1))
  */
 public final class TestMultiSheetFormulaEvaluatorOnXSSF {
-    private static final POILogger LOG = POILogFactory.getLogger(TestMultiSheetFormulaEvaluatorOnXSSF.class);
+    private static final Logger LOG = LogManager.getLogger(TestMultiSheetFormulaEvaluatorOnXSSF.class);
 
-    private static XSSFWorkbook workbook;
+	private static XSSFWorkbook workbook;
     private static Sheet sheet;
     private static FormulaEvaluator evaluator;
 
@@ -211,12 +214,12 @@ public final class TestMultiSheetFormula
 	 */
 	private static String getTargetFunctionName(Row r) {
 		if(r == null) {
-		    LOG.log(POILogger.WARN, "Warning - given null row, can't figure out function name");
+		    LOG.atWarn().log("Given null row, can't figure out function name");
 			return null;
 		}
-		Cell cell = r.getCell(SS.COLUMN_INDEX_FUNCTION_NAME);
+		Cell cell = r.getCell(COLUMN_INDEX_FUNCTION_NAME);
 		if(cell == null) {
-            LOG.log(POILogger.WARN, "Warning - Row " + r.getRowNum() + " has no cell " + SS.COLUMN_INDEX_FUNCTION_NAME + ", can't figure out function name");
+			LOG.atWarn().log("Row {} has no cell " + COLUMN_INDEX_FUNCTION_NAME + ", can't figure out function name", box(r.getRowNum()));
 			return null;
 		}
 
@@ -232,12 +235,12 @@ public final class TestMultiSheetFormula
 	 */
 	private static String getTargetTestName(Row r) {
 		if(r == null) {
-            LOG.log(POILogger.WARN, "Warning - given null row, can't figure out test name");
+            LOG.atWarn().log("Given null row, can't figure out test name");
 			return null;
 		}
-		Cell cell = r.getCell(SS.COLUMN_INDEX_TEST_NAME);
+		Cell cell = r.getCell(COLUMN_INDEX_TEST_NAME);
 		if(cell == null) {
-		    LOG.log(POILogger.WARN, "Warning - Row " + r.getRowNum() + " has no cell " + SS.COLUMN_INDEX_TEST_NAME + ", can't figure out test name");
+			LOG.atWarn().log("Row {} has no cell " + COLUMN_INDEX_TEST_NAME + ", can't figure out test name", box(r.getRowNum()));
 			return null;
 		}
 		CellType ct = cell.getCellType();

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java Sun Feb 21 20:57:25 2021
@@ -17,6 +17,9 @@
 
 package org.apache.poi.xssf.usermodel;
 
+import static java.time.Duration.between;
+import static java.time.Instant.now;
+import static org.apache.logging.log4j.util.Unbox.box;
 import static org.apache.poi.extractor.ExtractorFactory.OOXML_PACKAGE;
 import static org.apache.poi.openxml4j.opc.TestContentType.isOldXercesActive;
 import static org.junit.jupiter.api.Assertions.*;
@@ -31,7 +34,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
-import java.time.Duration;
 import java.time.Instant;
 import java.util.Arrays;
 import java.util.Calendar;
@@ -45,6 +47,8 @@ import java.util.TreeMap;
 
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipFile;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.common.usermodel.HyperlinkType;
 import org.apache.poi.hssf.HSSFITestDataProvider;
@@ -96,8 +100,6 @@ import org.apache.poi.ss.util.CellRefere
 import org.apache.poi.ss.util.CellUtil;
 import org.apache.poi.util.LocaleUtil;
 import org.apache.poi.util.NullOutputStream;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.TempFile;
 import org.apache.poi.util.XMLHelper;
 import org.apache.poi.xssf.SXSSFITestDataProvider;
@@ -117,7 +119,6 @@ import org.openxmlformats.schemas.spread
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedNames;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTIgnoredErrors;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMergeCell;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMergeCells;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
@@ -127,7 +128,7 @@ import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 
 public final class TestXSSFBugs extends BaseTestBugzillaIssues {
-    private static final POILogger LOG = POILogFactory.getLogger(TestXSSFBugs.class);
+    private static final Logger LOG = LogManager.getLogger(TestXSSFBugs.class);
 
     public TestXSSFBugs() {
         super(XSSFITestDataProvider.instance);
@@ -2033,7 +2034,6 @@ public final class TestXSSFBugs extends
         "DEC2BIN(A1), org.apache.poi.ss.formula.eval.StringEval [0]"
     })
     void test57196_WorkbookEvaluator(String formula, String expValue) throws IOException {
-        String previousLogger = System.getProperty("org.apache.poi.util.POILogger");
         try (XSSFWorkbook wb = new XSSFWorkbook()) {
             XSSFSheet sheet = wb.createSheet("Sheet1");
             XSSFRow row = sheet.createRow(0);
@@ -2051,13 +2051,6 @@ public final class TestXSSFBugs extends
             ValueEval ve = workbookEvaluator.evaluate(new XSSFEvaluationCell(cell));
 
             assertEquals(expValue, ve.toString());
-        } finally {
-            if (previousLogger == null) {
-                System.clearProperty("org.apache.poi.util.POILogger");
-            } else {
-                System.setProperty("org.apache.poi.util.POILogger", previousLogger);
-            }
-            System.clearProperty("poi.log.level");
         }
     }
 
@@ -3429,24 +3422,24 @@ public final class TestXSSFBugs extends
     void test58896WithFile() throws IOException {
         try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("58896.xlsx")) {
             Sheet sheet = wb.getSheetAt(0);
-            Instant start = Instant.now();
+            Instant start = now();
 
-            LOG.log(POILogger.INFO, "Autosizing columns...");
+            LOG.atInfo().log("Autosizing columns...");
 
             for (int i = 0; i < 3; ++i) {
-                LOG.log(POILogger.INFO, "Autosize ", i, " - ", Duration.between(start, Instant.now()));
+                LOG.atInfo().log("Autosize {} - {}", box(i), between(start, now()));
                 sheet.autoSizeColumn(i);
             }
 
             for (int i = 0; i < 69 - 35 + 1; ++i)
                 for (int j = 0; j < 8; ++j) {
                     int col = 3 + 2 + i * (8 + 2) + j;
-                    LOG.log(POILogger.INFO, "Autosize ", col, " - ", Duration.between(start, Instant.now()));
+                    LOG.atInfo().log("Autosize {} - {}", box(col), between(start, now()));
                     sheet.autoSizeColumn(col);
                 }
-            LOG.log(POILogger.INFO, Duration.between(start, Instant.now()));
+            LOG.atInfo().log(between(start, now()));
 
-            assertTrue(Duration.between(start, Instant.now()).getSeconds() < 25);
+            assertTrue(between(start, now()).getSeconds() < 25);
         }
     }
 

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java Sun Feb 21 20:57:25 2021
@@ -23,8 +23,8 @@ import static org.junit.jupiter.api.Asse
 
 import java.io.IOException;
 
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.junit.jupiter.api.Test;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
@@ -43,7 +43,7 @@ import org.openxmlformats.schemas.spread
  */
 class TestXSSFColGrouping {
 
-	private static final POILogger LOG = POILogFactory.getLogger(TestXSSFColGrouping.class);
+	private static final Logger LOG = LogManager.getLogger(TestXSSFColGrouping.class);
 
 
     /**
@@ -65,7 +65,7 @@ class TestXSSFColGrouping {
                 sheet = wb2.getSheet("test");
 
                 CTCols cols = sheet.getCTWorksheet().getColsArray(0);
-                LOG.log(POILogger.DEBUG, "test52186/cols:" + cols);
+                LOG.atDebug().log("test52186/cols:{}", cols);
                 for (CTCol col : cols.getColArray()) {
                     assertTrue(col.isSetWidth(), "Col width attribute is unset: " + col);
                 }
@@ -91,7 +91,7 @@ class TestXSSFColGrouping {
             sheet.setColumnGroupCollapsed(4, true);
 
             CTCols cols = sheet.getCTWorksheet().getColsArray(0);
-            LOG.log(POILogger.DEBUG, "test52186_2/cols:" + cols);
+            LOG.atDebug().log("test52186_2/cols:{}", cols);
 
             try (XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1, "testNoColsWithoutWidthWhenGroupingAndCollapsing")) {
                 sheet = wb2.getSheet("test");
@@ -125,7 +125,7 @@ class TestXSSFColGrouping {
             sheet.groupColumn((short) 2, (short) 3);
 
             sheet.getCTWorksheet().getColsArray(0);
-            LOG.log(POILogger.DEBUG, "testMergingOverlappingCols_OVERLAPS_2_WRAPS/cols:" + cols);
+            LOG.atDebug().log("testMergingOverlappingCols_OVERLAPS_2_WRAPS/cols:{}", cols);
 
             assertEquals(0, cols.getColArray(0).getOutlineLevel());
             assertEquals(2, cols.getColArray(0).getMin()); // 1 based
@@ -173,7 +173,7 @@ class TestXSSFColGrouping {
             sheet.groupColumn((short) 1, (short) 5);
 
             cols = sheet.getCTWorksheet().getColsArray(0);
-            LOG.log(POILogger.DEBUG, "testMergingOverlappingCols_OVERLAPS_1_WRAPS/cols:" + cols);
+            LOG.atDebug().log("testMergingOverlappingCols_OVERLAPS_1_WRAPS/cols:{}", cols);
 
             assertEquals(1, cols.getColArray(0).getOutlineLevel());
             assertEquals(2, cols.getColArray(0).getMin()); // 1 based
@@ -221,7 +221,7 @@ class TestXSSFColGrouping {
             sheet.groupColumn((short) 3, (short) 5);
 
             cols = sheet.getCTWorksheet().getColsArray(0);
-            LOG.log(POILogger.DEBUG, "testMergingOverlappingCols_OVERLAPS_1_MINOR/cols:" + cols);
+            LOG.atDebug().log("testMergingOverlappingCols_OVERLAPS_1_MINOR/cols:{}", cols);
 
             assertEquals(0, cols.getColArray(0).getOutlineLevel());
             assertEquals(3, cols.getColArray(0).getMin()); // 1 based
@@ -270,7 +270,7 @@ class TestXSSFColGrouping {
             sheet.groupColumn((short) 1, (short) 3);
 
             cols = sheet.getCTWorksheet().getColsArray(0);
-            LOG.log(POILogger.DEBUG, "testMergingOverlappingCols_OVERLAPS_2_MINOR/cols:" + cols);
+            LOG.atDebug().log("testMergingOverlappingCols_OVERLAPS_2_MINOR/cols:{}", cols);
 
             assertEquals(1, cols.getColArray(0).getOutlineLevel());
             assertEquals(2, cols.getColArray(0).getMin()); // 1 based

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetMergeRegions.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetMergeRegions.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetMergeRegions.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetMergeRegions.java Sun Feb 21 20:57:25 2021
@@ -16,20 +16,21 @@
 ==================================================================== */
 package org.apache.poi.xssf.usermodel;
 
+import static org.apache.logging.log4j.util.Unbox.box;
 import static org.junit.jupiter.api.Assertions.*;
 
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.junit.jupiter.api.Test;
 
 class TestXSSFSheetMergeRegions {
 
-    private static final POILogger LOG = POILogFactory.getLogger(TestXSSFSheetMergeRegions.class);
+    private static final Logger LOG = LogManager.getLogger(TestXSSFSheetMergeRegions.class);
 
     @Test
     void testMergeRegionsSpeed() throws IOException {
@@ -43,7 +44,7 @@ class TestXSSFSheetMergeRegions {
                 if (millis < 2000) {
                     break;
                 }
-                LOG.log(POILogger.INFO, "Retry ", i, " because run-time is too high: ", millis);
+                LOG.atInfo().log("Retry {} because run-time is too high: {}", box(i),box(millis));
             }
 
             boolean inGump = false;

Added: poi/trunk/src/resources/integrationtest/log4j2-test.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/resources/integrationtest/log4j2-test.xml?rev=1886770&view=auto
==============================================================================
--- poi/trunk/src/resources/integrationtest/log4j2-test.xml (added)
+++ poi/trunk/src/resources/integrationtest/log4j2-test.xml Sun Feb 21 20:57:25 2021
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<Configuration status="WARN" name="console">
+  <Appenders>
+    <Console name="Console" target="SYSTEM_OUT">
+      <PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
+    </Console>
+  </Appenders>
+  <Loggers>
+
+    <!-- Mute notoriously noisy loggers -->
+    <Logger name="org.apache.poi.poifs.nio.FileBackedDataSource" level="ERROR" />
+    <Logger name="org.apache.poi.hdgf.chunks.Chunk" level="FATAL" />
+    <Logger name="org.apache.poi.hpsf.CodePageString" level="ERROR" />
+    <Logger name="org.apache.poi.hdgf.chunks.ChunkFactory" level="ERROR" />
+    <Logger name="org.apache.poi.hslf.model.textproperties.BitMaskTextProp" level="ERROR" />
+    <Logger name="org.apache.poi.hslf.usermodel.HSLFTextParagraph" level="ERROR" />
+    <Logger name="org.apache.poi.openxml4j.opc.ZipPackage" level="ERROR" />
+    <Logger name="org.apache.poi.POIDocument" level="WARN" />
+    <Logger name="org.apache.poi.openxml4j.opc.OPCPackage" level="ERROR" />
+    <Logger name="org.apache.poi.xssf.usermodel.XSSFWorkbook" level="ERROR" />
+    <Logger name="org.apache.poi.hslf.usermodel.HSLFGroupShape" level="WARN" />
+    <Logger name="org.apache.poi.hslf.record.Record" level="ERROR" />
+
+    <!-- Change to DEBUG or another level to get log output -->
+    <Root level="DEBUG">
+      <AppenderRef ref="Console" />
+    </Root>
+  </Loggers>
+</Configuration>

Added: poi/trunk/src/resources/test/log4j2-test.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/resources/test/log4j2-test.xml?rev=1886770&view=auto
==============================================================================
--- poi/trunk/src/resources/test/log4j2-test.xml (added)
+++ poi/trunk/src/resources/test/log4j2-test.xml Sun Feb 21 20:57:25 2021
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<Configuration status="WARN" name="console">
+  <Appenders>
+    <Console name="Console" target="SYSTEM_OUT">
+      <PatternLayout pattern="%d [%t] %-5p %c - %m%n" />
+    </Console>
+  </Appenders>
+  <Loggers>
+
+    <!-- Mute notoriously noisy loggers -->
+    <Logger name="org.apache.poi.poifs.nio.FileBackedDataSource" level="ERROR" />
+    <Logger name="org.apache.poi.hdgf.chunks.Chunk" level="FATAL" />
+    <Logger name="org.apache.poi.hpsf.CodePageString" level="ERROR" />
+    <Logger name="org.apache.poi.hdgf.chunks.ChunkFactory" level="ERROR" />
+    <Logger name="org.apache.poi.hslf.model.textproperties.BitMaskTextProp" level="ERROR" />
+    <Logger name="org.apache.poi.hslf.usermodel.HSLFTextParagraph" level="ERROR" />
+    <Logger name="org.apache.poi.openxml4j.opc.ZipPackage" level="ERROR" />
+    <Logger name="org.apache.poi.POIDocument" level="WARN" />
+    <Logger name="org.apache.poi.openxml4j.opc.OPCPackage" level="ERROR" />
+    <Logger name="org.apache.poi.xssf.usermodel.XSSFWorkbook" level="ERROR" />
+    <Logger name="org.apache.poi.hslf.usermodel.HSLFGroupShape" level="WARN" />
+    <Logger name="org.apache.poi.hslf.record.Record" level="ERROR" />
+
+    <!-- Change to DEBUG or another level to get log output -->
+    <Root level="OFF">
+      <AppenderRef ref="Console" />
+    </Root>
+  </Loggers>
+</Configuration>

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java Sun Feb 21 20:57:25 2021
@@ -24,6 +24,8 @@ import java.io.InputStream;
 import java.util.List;
 import java.util.stream.StreamSupport;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.extractor.ExtractorFactory;
 import org.apache.poi.extractor.ExtractorProvider;
 import org.apache.poi.extractor.POIOLE2TextExtractor;
@@ -46,19 +48,17 @@ import org.apache.poi.poifs.filesystem.F
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.sl.extractor.SlideShowExtractor;
 import org.apache.poi.sl.usermodel.SlideShowFactory;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Scratchpad-specific logic for {@link ExtractorFactory} and
- *  {@link org.apache.poi.extractor.ExtractorFactory}, which permit the other two to run with
+ *  {@link ExtractorFactory}, which permit the other two to run with
  *  no Scratchpad jar (though without functionality!)
  * <p>Note - should not be used standalone, always use via the other
  *  two classes</p>
  */
 @SuppressWarnings("WeakerAccess")
 public class OLE2ScratchpadExtractorFactory implements ExtractorProvider {
-    private static final POILogger LOG = POILogFactory.getLogger(OLE2ScratchpadExtractorFactory.class);
+    private static final Logger LOG = LogManager.getLogger(OLE2ScratchpadExtractorFactory.class);
 
     @Override
     public boolean accepts(FileMagic fm) {
@@ -169,7 +169,7 @@ public class OLE2ScratchpadExtractorFact
                     .filter(entry -> entry.getName().startsWith("_"))
                     .forEach(dirs::add);
             } catch(FileNotFoundException e) {
-                LOG.log(POILogger.INFO, "Ignoring FileNotFoundException while extracting Word document", e.getLocalizedMessage());
+                LOG.atInfo().withThrowable(e).log("Ignoring FileNotFoundException while extracting Word document");
                 // ignored here
             }
             //} else if(ext instanceof PowerPointExtractor) {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/Chunk.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/Chunk.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/Chunk.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/Chunk.java Sun Feb 21 20:57:25 2021
@@ -19,17 +19,19 @@ package org.apache.poi.hdgf.chunks;
 
 import java.util.ArrayList;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hdgf.chunks.ChunkFactory.CommandDefinition;
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * Base of all chunks, which hold data, flags etc
  */
 public final class Chunk {
     /** For logging warnings about the structure of the file */
-    private static final POILogger LOG = POILogFactory.getLogger(Chunk.class);
+    private static final Logger LOG = LogManager.getLogger(Chunk.class);
 
     /**
      * The contents of the chunk, excluding the header,
@@ -179,9 +181,7 @@ public final class Chunk {
 
             // Check we seem to have enough data
             if(offset >= contents.length) {
-                LOG.log(POILogger.WARN,
-                        "Command offset ", offset, " past end of data at ", contents.length
-                );
+                LOG.atWarn().log("Command offset {} past end of data at {}", box(offset),box(contents.length));
                 continue;
             }
 
@@ -241,12 +241,11 @@ public final class Chunk {
                     break;
 
                 default:
-                    LOG.log(POILogger.INFO,
-                            "Command of type ", type, " not processed!");
+                    LOG.atInfo().log("Command of type {} not processed!", box(type));
                 }
             }
             catch (Exception e) {
-                LOG.log(POILogger.ERROR, "Unexpected error processing command, ignoring and continuing. Command: ", command, e);
+                LOG.atError().withThrowable(e).log("Unexpected error processing command, ignoring and continuing. Command: {}", command);
             }
 
             // Add to the array

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java Sun Feb 21 20:57:25 2021
@@ -26,10 +26,12 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.StringTokenizer;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * Factor class to create the appropriate chunks, which
@@ -59,7 +61,7 @@ public final class ChunkFactory {
 		"/org/apache/poi/hdgf/chunks_parse_cmds.tbl";
 
 	/** For logging problems we spot with the file */
-	private static final POILogger LOG = POILogFactory.getLogger(ChunkFactory.class);
+	private static final Logger LOG = LogManager.getLogger(ChunkFactory.class);
 
 	public ChunkFactory(int version) throws IOException {
 		this.version = version;
@@ -139,8 +141,7 @@ public final class ChunkFactory {
 		// Check we have enough data, and tweak the header size
 		//  as required
 		if(endOfDataPos > data.length) {
-			LOG.log(POILogger.WARN,
-				"Header called for ", header.getLength(), " bytes, but that would take us past the end of the data!");
+			LOG.atWarn().log("Header called for {} bytes, but that would take us past the end of the data!", box(header.getLength()));
 
 			endOfDataPos = data.length;
 			header.setLength(data.length - offset - header.getSizeInBytes());
@@ -165,7 +166,7 @@ public final class ChunkFactory {
 					data, endOfDataPos);
 				endOfDataPos += 8;
 			} else {
-				LOG.log(POILogger.ERROR, "Header claims a length to ", endOfDataPos, " there's then no space for the trailer in the data (", data.length, ")");
+				LOG.atError().log("Header claims a length to {} there's then no space for the trailer in the data ({})", box(endOfDataPos),box(data.length));
 			}
 		}
 		if(header.hasSeparator()) {
@@ -173,7 +174,7 @@ public final class ChunkFactory {
 				separator = new ChunkSeparator(
 						data, endOfDataPos);
 			} else {
-				LOG.log(POILogger.ERROR, "Header claims a length to ", endOfDataPos, " there's then no space for the separator in the data (", data.length, ")");
+				LOG.atError().log("Header claims a length to {} there's then no space for the separator in the data ({})", box(endOfDataPos),box(data.length));
 			}
 		}
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/streams/ChunkStream.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/streams/ChunkStream.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/streams/ChunkStream.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/streams/ChunkStream.java Sun Feb 21 20:57:25 2021
@@ -19,15 +19,17 @@ package org.apache.poi.hdgf.streams;
 
 import java.util.ArrayList;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hdgf.chunks.Chunk;
 import org.apache.poi.hdgf.chunks.ChunkFactory;
 import org.apache.poi.hdgf.chunks.ChunkHeader;
 import org.apache.poi.hdgf.pointers.Pointer;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 public final class ChunkStream extends Stream {
-	private static final POILogger LOG = POILogFactory.getLogger(ChunkStream.class);
+	private static final Logger LOG = LogManager.getLogger(ChunkStream.class);
 
 	private final ChunkFactory chunkFactory;
 	/** All the Chunks we contain */
@@ -66,14 +68,14 @@ public final class ChunkStream extends S
 
 					pos += chunk.getOnDiskSize();
 				} else {
-					LOG.log(POILogger.WARN, "Needed ", headerSize, " bytes to create the next chunk header, but only found ", (contents.length-pos), " bytes, ignoring rest of data");
+					LOG.atWarn().log("Needed {} bytes to create the next chunk header, but only found {} bytes, ignoring rest of data", box(headerSize),box(contents.length - pos));
 					pos = contents.length;
 				}
 			}
 		}
 		catch (Exception e)
 		{
-			LOG.log(POILogger.ERROR, "Failed to create chunk at ", pos, ", ignoring rest of data." + e);
+			LOG.atError().withThrowable(e).log("Failed to create chunk at {}, ignoring rest of data.", box(pos));
 		}
 
 		chunks = chunksA.toArray(new Chunk[0]);

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java Sun Feb 21 20:57:25 2021
@@ -29,6 +29,8 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.common.usermodel.GenericRecord;
 import org.apache.poi.hemf.draw.HemfGraphics;
 import org.apache.poi.hemf.draw.HemfGraphics.EmfRenderState;
@@ -43,16 +45,16 @@ import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndianConsts;
 import org.apache.poi.util.LittleEndianInputStream;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.RecordFormatException;
 
+import static org.apache.logging.log4j.util.Unbox.box;
+
 /**
  * Contains arbitrary data
  */
 @Internal
 public class HemfComment {
-    private static final POILogger LOG = POILogFactory.getLogger(HemfComment.class);
+    private static final Logger LOG = LogManager.getLogger(HemfComment.class);
     private static final int MAX_RECORD_LENGTH = HwmfPicture.MAX_RECORD_LENGTH;
 
     public enum HemfCommentRecordType {
@@ -101,7 +103,7 @@ public class HemfComment {
          */
         default void draw(HemfGraphics ctx) {}
 
-        default void calcBounds(Rectangle2D bounds, Rectangle2D viewport, HemfGraphics.EmfRenderState[] renderState) { }
+        default void calcBounds(Rectangle2D bounds, Rectangle2D viewport, EmfRenderState[] renderState) { }
 
 
         @Override
@@ -135,7 +137,7 @@ public class HemfComment {
         }
 
         @Override
-        public void calcBounds(Rectangle2D window, Rectangle2D viewport, HemfGraphics.EmfRenderState[] renderState) {
+        public void calcBounds(Rectangle2D window, Rectangle2D viewport, EmfRenderState[] renderState) {
             data.calcBounds(window, viewport, renderState);
         }
 
@@ -601,8 +603,7 @@ public class HemfComment {
             // some emf comments are truncated, so we don't use readFully here
             int readBytes = leis.read(wmfData);
             if (readBytes < wmfData.length) {
-                LOG.log(POILogger.INFO, "Emf comment with WMF: expected ", wmfData.length,
-                        " bytes - received only ", readBytes, " bytes.");
+                LOG.atInfo().log("Emf comment with WMF: expected {} bytes - received only {} bytes.", box(wmfData.length),box(readBytes));
             }
 
             return leis.getReadIndex()-startIdx;

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIDateAttribute.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIDateAttribute.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIDateAttribute.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIDateAttribute.java Sun Feb 21 20:57:25 2021
@@ -23,14 +23,14 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hmef.Attachment;
 import org.apache.poi.hmef.HMEFMessage;
 import org.apache.poi.hpsf.Filetime;
 import org.apache.poi.hsmf.datatypes.MAPIProperty;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * A pure-MAPI attribute holding a Date, which applies
@@ -42,7 +42,7 @@ import org.apache.poi.util.POILogger;
  * @see <a href="https://msdn.microsoft.com/en-us/library/cc433490(v=exchg.80).aspx">[MS-OXPROPS]: Exchange Server Protocols Master Property List</a>
  */
 public final class MAPIDateAttribute extends MAPIAttribute {
-   private static final POILogger LOG = POILogFactory.getLogger(MAPIDateAttribute.class);
+   private static final Logger LOG = LogManager.getLogger(MAPIDateAttribute.class);
    private final Date data;
 
    /**
@@ -80,7 +80,7 @@ public final class MAPIDateAttribute ext
          return ((MAPIDateAttribute)attr).getDate();
       }
 
-      LOG.log(POILogger.WARN, "Warning, non date property found: ", attr);
+      LOG.atWarn().log("Warning, non date property found: {}", attr);
       return null;
   }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIStringAttribute.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIStringAttribute.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIStringAttribute.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIStringAttribute.java Sun Feb 21 20:57:25 2021
@@ -19,12 +19,12 @@ package org.apache.poi.hmef.attribute;
 
 import java.nio.charset.Charset;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hmef.Attachment;
 import org.apache.poi.hmef.HMEFMessage;
 import org.apache.poi.hsmf.datatypes.MAPIProperty;
 import org.apache.poi.hsmf.datatypes.Types;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.StringUtil;
 
 /**
@@ -32,7 +32,7 @@ import org.apache.poi.util.StringUtil;
  *  to a {@link HMEFMessage} or one of its {@link Attachment}s.
  */
 public final class MAPIStringAttribute extends MAPIAttribute {
-   private static final POILogger LOG = POILogFactory.getLogger(MAPIStringAttribute.class);
+   private static final Logger LOG = LogManager.getLogger(MAPIStringAttribute.class);
    private static final String CODEPAGE = "CP1252";
    private final String data;
 
@@ -77,7 +77,7 @@ public final class MAPIStringAttribute e
          return ((MAPIRtfAttribute)attr).getDataString();
       }
 
-      LOG.log(POILogger.WARN, "Warning, non string property found: ", attr);
+      LOG.atWarn().log("Warning, non string property found: {}", attr);
       return null;
   }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFDateAttribute.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFDateAttribute.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFDateAttribute.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFDateAttribute.java Sun Feb 21 20:57:25 2021
@@ -26,20 +26,20 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hmef.Attachment;
 import org.apache.poi.hmef.HMEFMessage;
 import org.apache.poi.hpsf.Filetime;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * A Date attribute which applies to a {@link HMEFMessage}
  *  or one of its {@link Attachment}s.
  */
 public final class TNEFDateAttribute extends TNEFAttribute {
-   private static final POILogger LOG = POILogFactory.getLogger(TNEFDateAttribute.class);
+   private static final Logger LOG = LogManager.getLogger(TNEFDateAttribute.class);
    private final Date data;
 
    /**
@@ -95,7 +95,7 @@ public final class TNEFDateAttribute ext
          return ((TNEFDateAttribute)attr).getDate();
       }
 
-      LOG.log(POILogger.WARN, "Warning, non date property found: ", attr);
+      LOG.atWarn().log("Warning, non date property found: {}", attr);
       return null;
   }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFStringAttribute.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFStringAttribute.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFStringAttribute.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFStringAttribute.java Sun Feb 21 20:57:25 2021
@@ -20,10 +20,10 @@ package org.apache.poi.hmef.attribute;
 import java.io.IOException;
 import java.io.InputStream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hmef.Attachment;
 import org.apache.poi.hmef.HMEFMessage;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.StringUtil;
 
 /**
@@ -31,7 +31,7 @@ import org.apache.poi.util.StringUtil;
  *  or one of its {@link Attachment}s.
  */
 public final class TNEFStringAttribute extends TNEFAttribute {
-   private static final POILogger LOG = POILogFactory.getLogger(TNEFStringAttribute.class);
+   private static final Logger LOG = LogManager.getLogger(TNEFStringAttribute.class);
    private final String data;
 
    /**
@@ -78,7 +78,7 @@ public final class TNEFStringAttribute e
          return ((TNEFStringAttribute)attr).getString();
       }
 
-      LOG.log(POILogger.WARN, "Warning, non string property found: ", attr);
+      LOG.atWarn().log("Warning, non string property found: {}", attr);
       return null;
   }
 }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hpbf/model/QuillContents.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hpbf/model/QuillContents.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hpbf/model/QuillContents.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hpbf/model/QuillContents.java Sun Feb 21 20:57:25 2021
@@ -19,6 +19,8 @@ package org.apache.poi.hpbf.model;
 
 import java.io.IOException;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hpbf.model.qcbits.QCBit;
 import org.apache.poi.hpbf.model.qcbits.QCPLCBit;
 import org.apache.poi.hpbf.model.qcbits.QCTextBit;
@@ -27,14 +29,12 @@ import org.apache.poi.poifs.filesystem.D
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Read Quill Contents (/Quill/QuillSub/CONTENTS) from an HPBF (Publisher .pub) document
  */
 public final class QuillContents extends HPBFPart {
-	private static final POILogger LOG = POILogFactory.getLogger(QuillContents.class);
+	private static final Logger LOG = LogManager.getLogger(QuillContents.class);
 	//arbitrarily selected; may need to increase
 	private static final int MAX_RECORD_LENGTH = 1_000_000;
 
@@ -79,7 +79,7 @@ public final class QuillContents extends
 						bits[i] = QCPLCBit.createQCPLCBit(thingType, bitType, bitData);
 					} catch (ArrayIndexOutOfBoundsException e) {
 						// bug 60685: fall back so that the rest of the document can be read
-						LOG.log(POILogger.WARN, "Unable to read Quill Contents PLC Bit record. Ignoring this record.");
+						LOG.atWarn().log("Unable to read Quill Contents PLC Bit record. Ignoring this record.");
 						bits[i] = new UnknownQCBit(thingType, bitType, bitData);
 					}
 				} else {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java Sun Feb 21 20:57:25 2021
@@ -24,18 +24,20 @@ import java.io.EOFException;
 import java.io.IOException;
 import java.util.zip.InflaterInputStream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hslf.exceptions.HSLFException;
 import org.apache.poi.sl.image.ImageHeaderPICT;
 import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.Units;
 
+import static org.apache.logging.log4j.util.Unbox.box;
+
 /**
  * Represents Macintosh PICT picture data.
  */
 public final class PICT extends Metafile {
-    private static final POILogger LOG = POILogFactory.getLogger(PICT.class);
+    private static final Logger LOG = LogManager.getLogger(PICT.class);
 
 
     @Override
@@ -85,7 +87,7 @@ public final class PICT extends Metafile
                 out.write(chunk, 0, lastLen);
             }
             // End of picture marker for PICT is 0x00 0xFF
-            LOG.log(POILogger.ERROR, "PICT zip-stream is invalid, read as much as possible. Uncompressed length of header: ", header.getWmfSize(), " / Read bytes: ", out.size(), e);
+            LOG.atError().withThrowable(e).log("PICT zip-stream is invalid, read as much as possible. Uncompressed length of header: {} / Read bytes: {}", box(header.getWmfSize()),box(out.size()));
         }
         return out.toByteArray();
     }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMetroShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMetroShape.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMetroShape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMetroShape.java Sun Feb 21 20:57:25 2021
@@ -19,6 +19,8 @@ package org.apache.poi.hslf.model;
 
 import java.lang.reflect.Method;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ddf.AbstractEscherOptRecord;
 import org.apache.poi.ddf.EscherComplexProperty;
 import org.apache.poi.ddf.EscherPropertyTypes;
@@ -26,8 +28,6 @@ import org.apache.poi.ddf.EscherTertiary
 import org.apache.poi.hslf.usermodel.HSLFShape;
 import org.apache.poi.sl.usermodel.Shape;
 import org.apache.poi.util.Internal;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Experimental class for metro blobs, i.e. an alternative escher property
@@ -35,8 +35,8 @@ import org.apache.poi.util.POILogger;
  */
 @Internal
 public class HSLFMetroShape<T extends Shape<?,?>> {
-    private static final POILogger LOGGER = POILogFactory.getLogger(HSLFMetroShape.class);
-    
+    private static final Logger LOGGER = LogManager.getLogger(HSLFMetroShape.class);
+
     private final HSLFShape shape;
 
     public HSLFMetroShape(HSLFShape shape) {
@@ -81,7 +81,7 @@ public class HSLFMetroShape<T extends Sh
             Method m = ms.getMethod("parseShape", byte[].class);
             return (T)m.invoke(null, new Object[]{metroBytes});
         } catch (Exception e) {
-            LOGGER.log(POILogger.ERROR, "can't process metro blob, check if all dependencies for POI OOXML are in the classpath.", e);
+            LOGGER.atError().withThrowable(e).log("can't process metro blob, check if all dependencies for POI OOXML are in the classpath.");
             return null;
         }
     }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java Sun Feb 21 20:57:25 2021
@@ -22,9 +22,10 @@ import static org.apache.poi.util.Generi
 import java.util.Map;
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.poi.util.GenericRecordUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Definition of a special kind of property of some text, or its
@@ -34,9 +35,9 @@ import org.apache.poi.util.POILogger;
  *  (but related) properties
  */
 public abstract class BitMaskTextProp extends TextProp {
-    protected static final POILogger LOG = POILogFactory.getLogger(BitMaskTextProp.class);
+    protected static final Logger LOG = LogManager.getLogger(BitMaskTextProp.class);
 
-    private String[] subPropNames;
+	private String[] subPropNames;
 	private int[] subPropMasks;
 	private boolean[] subPropMatches;
 
@@ -148,8 +149,8 @@ public abstract class BitMaskTextProp ex
 	    setWriteMask(writeMask);
 	    super.setValue(maskValue(val));
 	    if (val != super.getValue()) {
-	        LOG.log(POILogger.WARN, "Style properties of '", getName(), "' don't match mask - output will be sanitized");
-	        if (LOG.check(POILogger.DEBUG)) {
+			LOG.atWarn().log("Style properties of '{}' don't match mask - output will be sanitized", getName());
+			LOG.atDebug().log(() -> {
 	            StringBuilder sb = new StringBuilder("The following style attributes of the '")
 						.append(getName()).append("' property will be ignored:\n");
 	            int i=0;
@@ -159,8 +160,8 @@ public abstract class BitMaskTextProp ex
 	                }
 	                i++;
 	            }
-	            LOG.log(POILogger.DEBUG, sb.toString());
-	        }
+	            return new SimpleMessage(sb);
+			});
 	    }
 	}
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/TextPropCollection.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/TextPropCollection.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/TextPropCollection.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/TextPropCollection.java Sun Feb 21 20:57:25 2021
@@ -29,13 +29,14 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.common.Duplicatable;
 import org.apache.poi.common.usermodel.GenericRecord;
 import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.hslf.record.Record;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * For a given run of characters, holds the properties (which could
@@ -44,7 +45,7 @@ import org.apache.poi.util.POILogger;
  *  properties, and the indent level if required.
  */
 public class TextPropCollection implements GenericRecord, Duplicatable {
-    private static final POILogger LOG = POILogFactory.getLogger(TextPropCollection.class);
+    private static final Logger LOG = LogManager.getLogger(TextPropCollection.class);
 
     /** All the different kinds of paragraph properties we might handle */
     private static final TextProp[] paragraphTextPropTypes = {
@@ -291,12 +292,12 @@ public class TextPropCollection implemen
 	    if (!isMasterStyle) {
 	        // First goes the number of characters we affect
 	        // MasterStyles don't have this field
-            org.apache.poi.hslf.record.Record.writeLittleEndian(charactersCovered,o);
+            Record.writeLittleEndian(charactersCovered,o);
 	    }
 
 		// Then we have the indentLevel field if it's a paragraph collection
 		if (textPropType == TextPropType.paragraph && indentLevel > -1) {
-            org.apache.poi.hslf.record.Record.writeLittleEndian(indentLevel, o);
+            Record.writeLittleEndian(indentLevel, o);
 		}
 
 		// Then the mask field
@@ -304,7 +305,7 @@ public class TextPropCollection implemen
 		for (TextProp textProp : textProps.values()) {
             mask |= textProp.getWriteMask();
         }
-        org.apache.poi.hslf.record.Record.writeLittleEndian(mask,o);
+        Record.writeLittleEndian(mask,o);
 
 		// Then the contents of all the properties
 		for (TextProp textProp : getTextPropList()) {
@@ -313,9 +314,9 @@ public class TextPropCollection implemen
                 // don't add empty properties, as they can't be recognized while reading
                 continue;
             } else if (textProp.getSize() == 2) {
-                org.apache.poi.hslf.record.Record.writeLittleEndian((short)val,o);
+                Record.writeLittleEndian((short)val,o);
             } else if (textProp.getSize() == 4) {
-                org.apache.poi.hslf.record.Record.writeLittleEndian(val,o);
+                Record.writeLittleEndian(val,o);
             } else if (textProp instanceof HSLFTabStopPropCollection) {
                 ((HSLFTabStopPropCollection)textProp).writeProperty(o);
             }
@@ -383,7 +384,7 @@ public class TextPropCollection implemen
             byte[] b = baos.toByteArray();
             out.append(HexDump.dump(b, 0, 0));
         } catch (IOException e ) {
-            LOG.log(POILogger.ERROR, "can't dump TextPropCollection", e);
+            LOG.atError().withThrowable(e).log("can't dump TextPropCollection");
         }
 
         return out.toString();

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/AnimationInfo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/AnimationInfo.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/AnimationInfo.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/AnimationInfo.java Sun Feb 21 20:57:25 2021
@@ -22,7 +22,8 @@ import java.io.OutputStream;
 import java.util.Arrays;
 
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * A container record that specifies information about animation information for a shape.
@@ -55,10 +56,11 @@ public final class AnimationInfo extends
 	private void findInterestingChildren() {
 
 		// First child should be the ExMediaAtom
-		if(_children[0] instanceof AnimationInfoAtom) {
-			animationAtom = (AnimationInfoAtom)_children[0];
+		final Record child = _children[0];
+		if(child instanceof AnimationInfoAtom) {
+			animationAtom = (AnimationInfoAtom) child;
 		} else {
-			LOG.log(POILogger.ERROR, "First child record wasn't a AnimationInfoAtom, was of type ", _children[0].getRecordType());
+			LOG.atError().log("First child record wasn't a AnimationInfoAtom, was of type {}", box(child.getRecordType()));
 		}
 	}
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java Sun Feb 21 20:57:25 2021
@@ -22,7 +22,8 @@ import java.io.OutputStream;
 import java.util.Arrays;
 
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * This class represents a comment on a slide, in the format used by
@@ -129,7 +130,7 @@ public final class Comment2000 extends R
             } else if (r instanceof Comment2000Atom){
                 commentAtom = (Comment2000Atom)r;
             } else {
-                LOG.log(POILogger.WARN, "Unexpected record with type=", r.getRecordType(), " in Comment2000: ", r.getClass().getName());
+				LOG.atWarn().log("Unexpected record with type={} in Comment2000: {}", box(r.getRecordType()),r.getClass().getName());
             }
         }
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java Sun Feb 21 20:57:25 2021
@@ -20,6 +20,7 @@
 
 package org.apache.poi.hslf.record;
 
+import static org.apache.logging.log4j.util.Unbox.box;
 import static org.apache.poi.hslf.usermodel.HSLFSlideShow.PP95_DOCUMENT;
 
 import java.io.ByteArrayInputStream;
@@ -28,6 +29,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
 import org.apache.poi.hslf.exceptions.OldPowerPointFormatException;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
@@ -35,8 +38,6 @@ import org.apache.poi.poifs.filesystem.D
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.StringUtil;
 
 /**
@@ -46,7 +47,7 @@ import org.apache.poi.util.StringUtil;
  */
 public class CurrentUserAtom
 {
-	private static final POILogger LOG = POILogFactory.getLogger(CurrentUserAtom.class);
+	private static final Logger LOG = LogManager.getLogger(CurrentUserAtom.class);
 	//arbitrarily selected; may need to increase
 	private static final int MAX_RECORD_LENGTH = 1_000_000;
 
@@ -177,7 +178,7 @@ public class CurrentUserAtom
 		long usernameLen = LittleEndian.getUShort(_contents,20);
 		if(usernameLen > 512) {
 			// Handle the case of it being garbage
-			LOG.log(POILogger.WARN, "Warning - invalid username length ", usernameLen, " found, treating as if there was no username set");
+			LOG.atWarn().log("Invalid username length {} found, treating as if there was no username set", box(usernameLen));
 			usernameLen = 0;
 		}
 

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Document.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Document.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Document.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Document.java Sun Feb 21 20:57:25 2021
@@ -22,7 +22,7 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import org.apache.poi.util.POILogger;
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * Master container for Document. There is one of these for every
@@ -161,10 +161,10 @@ public final class Document extends Posi
 		//  (normally it's 2, or 3 if you have notes)
 		// Complain if it's not
 		if(slwtcount == 0) {
-			LOG.log(POILogger.WARN, "No SlideListWithText's found - there should normally be at least one!");
+			LOG.atWarn().log("No SlideListWithText's found - there should normally be at least one!");
 		}
 		if(slwtcount > 3) {
-			LOG.log(POILogger.WARN, "Found ", slwtcount, " SlideListWithTexts - normally there should only be three!");
+			LOG.atWarn().log("Found {} SlideListWithTexts - normally there should only be three!", box(slwtcount));
 		}
 
 		// Now grab all the SLWTs



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org