2

当我在 jboss as7 上部署我的 maven/spring 应用程序并尝试上传 docx 文件时,我收到以下消息。当我在应用程序的 WYSIWIG 编辑器中查看该消息时,该消息会显示在上传文件的正文中。当我在码头本地运行应用程序时,该消息不显示。我包含了 log4j 和 docx4j 属性文件。我不确定哪个属性可以让我切换错误中提到的 docx4j 类的调试日志记录,到目前为止,我在网络搜索中都是空的。顺便说一句,我的应用程序没有使用 log4j/docx4j xml 文件,从我读到的内容来看,它是一个非此即彼的设置。如果我应该切换到 xml,请让我知道并告知我需要调整哪些属性,以便我可以清除此消息。

要隐藏这些消息,请关闭 org.docx4j.convert.out.html.HtmlExporterNG2 的 log4j 调试级别日志记录

log4j.properties

log4j.rootLogger=ERROR,stdout
#Console Appender 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n
#Custom assignments
log4j.logger.Controllers=DEBUG,stdout
log4j.logger.Entities=DEBUG,stdout
log4j.logger.Models=DEBUG,stdout
#Disable additivity
log4j.additivity.Controllers=false
log4j.additivity.Entities=false
log4j.additivity.Models=false

docx4j.properties

# Page size: use a value from org.docx4j.model.structure.PageSizePaper enum
# eg A4, LETTER
docx4j.PageSize=LETTER
# Page size: use a value from org.docx4j.model.structure.MarginsWellKnown enum
docx4j.PageMargins=NORMAL
docx4j.PageOrientationLandscape=false
# Page size: use a value from org.pptx4j.model.SlideSizesWellKnown enum
# eg A4, LETTER
pptx4j.PageSize=LETTER
pptx4j.PageOrientationLandscape=false
# These will be injected into docProps/app.xml
# if App.Write=true
docx4j.App.write=true
docx4j.Application=docx4j
docx4j.AppVersion=2.7
# of the form XX.YYYY where X and Y represent numerical values
# These will be injected into docProps/core.xml
docx4j.dc.write=true
docx4j.dc.creator.value=docx4j
docx4j.dc.lastModifiedBy.value=docx4j
#
#docx4j.McPreprocessor=true
# If you haven't configured log4j yourself
# docx4j will autoconfigure it. Set this to true to disable that
docx4j.Log4j.Configurator.disabled=true
4

6 回答 6

3

docx4j我们在使用Spring Boot时遇到了类似的问题。

由于spring-boot-starter-logging自动配置logback-classic用作记录器的实现,因此只需为包设置正确的级别。在我们的例子中,我们不需要任何日志记录,docx4j因此将以下行添加到 application.properties 禁用了“docx4j”的整个输出:

logging.level.org.docx4j=OFF

如果您特别需要禁用文档的控制台打印,则需要在此特定文件上设置关闭日志级别:

logging.level.org.docx4j.model.datastorage.migration.VariablePrepare=OFF

编辑:我知道这个主题很旧,但是在使用 spring boot 时,针对这个主题的资源非常有限。我希望这对将来的人有所帮助。

于 2019-05-28T11:44:00.467 回答
2

我不确定 docx4j 如何配置 log4j,但您可以尝试将其更改docx4j.Log4j.Configurator.disabled=truefalse

如果这不起作用,您可能想尝试排除服务器 log4j 实现。您可以添加排除 log4jjboss-deployment-structure.xml的。

于 2012-04-12T01:36:21.340 回答
2

在 log4j.properties 或 log4j.xml 文件 log4j.rootCategory=OFF, SymbolicNameForAppender 中将 rootCategory Level 从 DEBUG 更改为 OFF

于 2012-07-25T16:20:29.297 回答
1

我能够使用以下命令禁用日志输出(使用 docx4j 2.8.1):

Docx4jProperties.getProperties().setProperty(
    "docx4j.Log4j.Configurator.disabled", "true");
Log4jConfigurator.configure();

请注意,如果没有第二条语句,则不会抑制日志记录。

于 2013-05-16T04:21:37.147 回答
1

使用以下代码:

Docx4jProperties.getProperties().setProperty("docx4j.Log4j.Configurator.disabled", "true");
Log4jConfigurator.configure();            
org.docx4j.convert.out.pdf.viaXSLFO.Conversion.log.setLevel(Level.OFF);
于 2014-01-13T12:22:07.793 回答
1

用这个:

LogManager.getLogger("org.docx4j").setLevel(Level.OFF);
于 2021-01-28T12:29:08.320 回答