fanruan.log Output Logic Introduction

  • Last update:March 07, 2022
  • I. Overview

    After finereport is deployed, it will generate the operation log of fanruan.log. This file records the information of daily execution output and throws error information when exception occurs. 

    Sometimes customers cannot find fanruan.log, which makes it impossible to find the cause of the error.

    II. Log Logic

    1. Log location logic

    1) Report Server

    The log location is determined according to log4j.properties at server startup.

    2) Report Designer

    Click designer.exe to start, logs are located in the same directory as bin


    2. Log execution logic

    System first reads the built-in configuration of FineReport, located in fine-core.jar#com/fr/general/log/log4j.properties

    After loading the built-in configuration, it reads whether the custom configuration file exists in webapps/appName/WEB-INF/ config/log4j.properties;

    If it exists, it overrides the FineReport built-in configuration and loads the custom configuration.

    III. Change fanruan.log output location

    1. Use built-in configuration

    • ${LOG_ROOT_LEVEL}:Set the minimum level of log,the values that can be set are OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL or custom levels. Log4j recommends only using four levels of ERROR, WARN, INFO, and DEBUG.

    • standardappenderName ,Location of the log file.

    • stdout:Output to console.

    • log4j.appender.standard.File:Specific folder location.

    • ${LOG_HOME}The path of LOG_HOME is obtained through the system variable user.dir, and the location of user.dir is the location where the script is executed. Generally, we can get the actual user.dir of the corresponding process by executing the command: jcmd pid VM.system_properties.

    Note:

    WindowsLinux
    The decompressed version of tomcat (such as Server Deployment Package), usually when we start tomcat, we go to tomcat/bin and double-click startup.bat to start, so user.dir is tomcat/bin, so the log will be output to tomcat/ under logs.Linux usually executes startup.bat to start tomcat, but some users will not switch to the bin directory for execution, and may execute it in a directory outside Tomcat, so the user.dir is different, which leads to the log output. The locations also vary.

    If it is an installed version of tomcat (registered as a system service), it will be found through testing that user.dir is actually the path of the tomcat folder itself.

    So the log will be output to the logs of the same level in the tomcat folder.

    image.png

    2. Use custom configuration file

    Usually the report project is deployed to the server, and we want to output the fanruan.log to a fixed folder.

    At this time, we can customize the log4j.properties and place it in the webapps/APPName/WEB-INF/config folder.

    The content of the file can be copied and modified the built-in log4j.properties, just modify log4j.appender.standard.File

    log4j.appender.standard.File=/users/fanruan/tomcat/logs/fanruan.log

    Full code:

    log4j.rootLogger=${LOG_ROOT_LEVEL},standard,stdout
    log4j.appender.standard=com.fr.third.apache.log4j.DailyRollingFileAppender
    log4j.appender.standard.DatePattern='.'yyyy-MM-dd
    log4j.appender.standard.File=/users/fanruan/tomcat/logs/fanruan.log
    #log4j.appender.standard.layout=com.fr.third.apache.log4j.PatternLayout
    log4j.appender.standard.layout=com.fr.general.log.FinePatternLayout
    # %d{yyyy/MM/dd HH:mm:ss} Specify date format
    log4j.appender.standard.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %t %p [%c]${EXTRA}%m%n
    log4j.appender.standard.Append=true
    # maxBackupIndex Combined with DailyMaxRollingFileAppender and it takes effect when it is a positive integer,
    # it means to keep log files for several days.
    # log4j.appender.standard=com.fr.general.log.appender.DailyMaxRollingFileAppender
    # log4j.appender.standard.maxBackupIndex=30

    log4j.appender.stdout=com.fr.third.apache.log4j.ConsoleAppender
    #log4j.appender.stdout.layout=com.fr.third.apache.log4j.PatternLayout
    log4j.appender.stdout.layout=com.fr.general.log.FinePatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %t %p [%c]${EXTRA}%m%n
    log4j.appender.stdout.filter.ConsoleLogFilter=com.fr.general.log.ConsoleLogFilter

    log4j.logger.com.fr.third.org.hibernate=ERROR
    log4j.logger.com.fr.log.throwable.stack.depth=-1

    Note:After the fanruan.log is changed, it needs to be restarted to be automatically generated.

    Attachment List


    Theme: Decision-making Platform
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy