LogLevels.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */



  20. package org.openspcoop2.pdd.logger;

  21. import  org.apache.logging.log4j.Level;

  22. /**
  23.  * Classe utilizzata per rappresentare i livelli di msgDiagnostico di OpenSPCoop.
  24.  *
  25.  *
  26.  * @author Poli Andrea (apoli@link.it)
  27.  * @author $Author$
  28.  * @version $Rev$, $Date$
  29.  */


  30. public class LogLevels {



  31.     /** Definisce la costante per il livello di log gestito in OpenSPCoop */
  32.     public static final int COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL = 10000;
  33.     /** Definisce un Livello di Severita' OFF per un messaggio Diagnostico: valore del field = MinValueInt */
  34.     public static final int SEVERITA_OFF = Integer.MIN_VALUE;
  35.     /** Definisce un Livello di Severita' FATAL per un messaggio Diagnostico: valore del field = 0 */
  36.     public static final int SEVERITA_FATAL = 0;
  37.     /** Definisce un Livello di Severita' ERROR-PROTOCOL per un messaggio Diagnostico: valore del field = 1 */
  38.     public static final int SEVERITA_ERROR_PROTOCOL = 1;
  39.     /** Definisce un Livello di Severita' ERROR-OPENSPCOOP per un messaggio Diagnostico: valore del field = 2 */
  40.     public static final int SEVERITA_ERROR_INTEGRATION = 2;
  41.     /** Definisce un Livello di Severita' INFO-PROTOCOL per un messaggio Diagnostico: valore del field = 3 */
  42.     public static final int SEVERITA_INFO_PROTOCOL = 3;
  43.     /** Definisce un Livello di Severita' INFO-INTEGRATION per un messaggio Diagnostico: valore del field = 4 */
  44.     public static final int SEVERITA_INFO_INTEGRATION = 4;
  45.     /** Definisce un Livello di Severita' DEBUG-LOW per un messaggio Diagnostico: valore del field = 5 */
  46.     public static final int SEVERITA_DEBUG_LOW = 5;
  47.     /** Definisce un Livello di Severita' DEBUG-MEDIUM per un messaggio Diagnostico: valore del field = 6 */
  48.     public static final int SEVERITA_DEBUG_MEDIUM = 6;
  49.     /** Definisce un Livello di Severita' DEBUG-HIGH per un messaggio Diagnostico: valore del field = 7 */
  50.     public static final int SEVERITA_DEBUG_HIGH = 7;
  51.     /** Definisce un Livello di Severita' ALL per un messaggio Diagnostico: valore del field = MaxValueInt */
  52.     public static final int SEVERITA_ALL = Integer.MAX_VALUE;
  53.     /** Definisce una funzione per riportare il valore, in valore OpenSPCoop */
  54.     public static int toIntervalloLog4J(int valore){
  55.        
  56.         if(LogLevels.SEVERITA_OFF == valore)
  57.             return valore;
  58.         else if(LogLevels.SEVERITA_FATAL == valore)
  59.             return valore;
  60.         else if(LogLevels.SEVERITA_ERROR_PROTOCOL == valore)
  61.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  62.         else if(LogLevels.SEVERITA_ERROR_INTEGRATION == valore)
  63.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  64.         else if(LogLevels.SEVERITA_INFO_PROTOCOL == valore)
  65.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  66.         else if(LogLevels.SEVERITA_INFO_INTEGRATION == valore)
  67.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  68.         else if(LogLevels.SEVERITA_DEBUG_LOW == valore)
  69.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  70.         else if(LogLevels.SEVERITA_DEBUG_MEDIUM == valore)
  71.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  72.         else if(LogLevels.SEVERITA_DEBUG_HIGH == valore)
  73.             return valore*LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  74.         else if(LogLevels.SEVERITA_ALL == valore)
  75.             return valore;
  76.         else
  77.             return -1;
  78.     }
  79.    
  80.     public static int toIntervalloOpenSPCoop2(int valore){
  81.        
  82.         int valoreOpenspcoop2_resto = (valore % LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL) ;
  83.         int valoreOpenspcoop2 = valore / LogLevels.COSTANTE_TRASFORMAZIONE_LOG4J_LEVEL;
  84.         if(valoreOpenspcoop2_resto>0){
  85.             valoreOpenspcoop2++;
  86.         }
  87.         if( valoreOpenspcoop2 > LogLevels.SEVERITA_DEBUG_HIGH) {
  88.             return LogLevels.SEVERITA_ALL;
  89.         }else if( valoreOpenspcoop2 < LogLevels.SEVERITA_FATAL) {
  90.             return LogLevels.SEVERITA_OFF;
  91.         }else {
  92.             return valoreOpenspcoop2;
  93.         }

  94.     }

  95.     /** Definisce un Livello di Severita' FATAL per un messaggio Diagnostico: valore del field = 0 */
  96.     public static final String LIVELLO_FATAL = "fatal";
  97.     /** Definisce un Livello di Severita' ERROR-PROTOCOL per un messaggio Diagnostico: valore del field = 1 */
  98.     public static final String LIVELLO_ERROR_PROTOCOL = "errorProtocol";
  99.     /** Definisce un Livello di Severita' ERROR-INTEGRATION per un messaggio Diagnostico: valore del field = 2 */
  100.     public static final String LIVELLO_ERROR_INTEGRATION = "errorIntegration";
  101.     /** Definisce un Livello di Severita' INFO-PROTOCOL per un messaggio Diagnostico: valore del field = 3 */
  102.     public static final String LIVELLO_INFO_PROTOCOL = "infoProtocol";
  103.     /** Definisce un Livello di Severita' INFO-INTEGRATION per un messaggio Diagnostico: valore del field = 4 */
  104.     public static final String LIVELLO_INFO_INTEGRATION = "infoIntegration";
  105.     /** Definisce un Livello di Severita' DEBUG-LOW per un messaggio Diagnostico: valore del field = 5 */
  106.     public static final String LIVELLO_DEBUG_LOW = "debugLow";
  107.     /** Definisce un Livello di Severita' DEBUG-MEDIUM per un messaggio Diagnostico: valore del field = 6 */
  108.     public static final String LIVELLO_DEBUG_MEDIUM = "debugMedium";
  109.     /** Definisce un Livello di Severita' DEBUG-HIGH per un messaggio Diagnostico: valore del field = 7 */
  110.     public static final String LIVELLO_DEBUG_HIGH = "debugHigh";
  111.     /** Disattiva i Log */
  112.     public static final String LIVELLO_OFF = "off";
  113.     /** Abilita qualsiasi log */
  114.     public static final String LIVELLO_ALL = "all";

  115.    
  116.     /*
  117.     Standard Level  intLevel
  118.     OFF     0
  119.     FATAL   100
  120.     ERROR   200
  121.     WARN    300
  122.     INFO    400
  123.     DEBUG   500
  124.     TRACE   600
  125.     ALL     Integer.MAX_VALUE
  126.     */

  127.     /** Definisce un Livello di Severita' FATAL per un messaggio Diagnostico: valore Log4J = 99 */
  128.     public static final Level LOG_LEVEL_FATAL =
  129.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_FATAL,99);

  130.     /** Definisce un Livello di Severita' ERROR per un messaggio Diagnostico: valore Log4J = 198 */
  131.     public static final Level LOG_LEVEL_ERROR_PROTOCOL =
  132.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_ERROR_PROTOCOL,198);

  133.     /** Definisce un Livello di Severita' ERROR-INTEGRATION per un messaggio Diagnostico: valore Log4J = 199 */
  134.     public static final Level LOG_LEVEL_ERROR_INTEGRATION =
  135.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_ERROR_INTEGRATION,199);

  136.     /** Definisce un Livello di Severita' INFO-PROTOCOL per un messaggio Diagnostico: valore Log4J = 398 */
  137.     public static final Level LOG_LEVEL_INFO_PROTOCOL =
  138.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_INFO_PROTOCOL,398);

  139.     /** Definisce un Livello di Severita' INFO-INTEGRATION per un messaggio Diagnostico: valore Log4J = 399 */
  140.     public static final Level LOG_LEVEL_INFO_INTEGRATION =
  141.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_INFO_INTEGRATION,399);

  142.     /** Definisce un Livello di Severita' DEBUG-LOW per un messaggio Diagnostico: valore Log4J = 498 */
  143.     public static final Level LOG_LEVEL_DEBUG_LOW =
  144.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_DEBUG_LOW,498);

  145.     /** Definisce un Livello di Severita' DEBUG-MEDIUM per un messaggio Diagnostico: valore Log4J = 499 */
  146.     public static final Level LOG_LEVEL_DEBUG_MEDIUM =
  147.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_DEBUG_MEDIUM,499);

  148.     /** Definisce un Livello di Severita' DEBUG-HIGH per un messaggio Diagnostico: valore Log4J = 599 */
  149.     public static final Level LOG_LEVEL_DEBUG_HIGH =
  150.             org.apache.logging.log4j.Level.forName(LogLevels.LIVELLO_DEBUG_HIGH,599);



  151.     /**
  152.      * Metodo che effettua la trasformazione da un livello di severita OpenSPCoop2 nell'analogo livello Log4J.
  153.      *
  154.      * @param valueLivelloOpenSPCoop Livello da trasformare
  155.      * @return Il livello di Log4J, se la trasformazione ha successo, false altrimenti.
  156.      */
  157.     public static Level toLog4J(int valueLivelloOpenSPCoop){
  158.         if((valueLivelloOpenSPCoop < 0) || (valueLivelloOpenSPCoop > 7)){
  159.             return LogLevels.LOG_LEVEL_INFO_PROTOCOL;
  160.         }  else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_FATAL ){
  161.             return LogLevels.LOG_LEVEL_FATAL;
  162.         }  else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_ERROR_PROTOCOL ){
  163.             return LogLevels.LOG_LEVEL_ERROR_PROTOCOL;
  164.         }  else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_ERROR_INTEGRATION ){
  165.             return LogLevels.LOG_LEVEL_ERROR_INTEGRATION;
  166.         }  else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_INFO_PROTOCOL ){
  167.             return LogLevels.LOG_LEVEL_INFO_PROTOCOL;
  168.         }  else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_INFO_INTEGRATION ){
  169.             return LogLevels.LOG_LEVEL_INFO_INTEGRATION;
  170.         } else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_DEBUG_LOW ){
  171.             return LogLevels.LOG_LEVEL_DEBUG_LOW;
  172.         } else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_DEBUG_MEDIUM ){
  173.             return LogLevels.LOG_LEVEL_DEBUG_MEDIUM;
  174.         //} else if( valueLivelloOpenSPCoop == LogLevels.SEVERITA_DEBUG_HIGH ){
  175.         } else {
  176.             return LogLevels.LOG_LEVEL_DEBUG_HIGH;
  177.         }
  178.     }

  179.     /**
  180.      * Metodo che effettua la trasformazione di una stringa nell'analogo livello Log4J.
  181.      *
  182.      * @param livello Oggetto Level da ottenere
  183.      * @return L'oggetto Level di OpenSPCoop se la trasformazione ha successo, null altrimenti.
  184.      */
  185.     public static Level toLog4J(String livello){

  186.         if(livello==null)
  187.             return LogLevels.LOG_LEVEL_INFO_PROTOCOL;

  188.         if(livello.equalsIgnoreCase(LogLevels.LIVELLO_FATAL)){
  189.             return LogLevels.LOG_LEVEL_FATAL;
  190.         }
  191.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_ERROR_PROTOCOL)){
  192.             return LogLevels.LOG_LEVEL_ERROR_PROTOCOL;
  193.         }
  194.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_ERROR_INTEGRATION)){
  195.             return LogLevels.LOG_LEVEL_ERROR_INTEGRATION;
  196.         }  
  197.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_INFO_PROTOCOL)){
  198.             return LogLevels.LOG_LEVEL_INFO_PROTOCOL;
  199.         }
  200.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_INFO_INTEGRATION)){
  201.             return LogLevels.LOG_LEVEL_INFO_INTEGRATION;
  202.         }
  203.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_DEBUG_LOW)){
  204.             return LogLevels.LOG_LEVEL_DEBUG_LOW;
  205.         }
  206.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_DEBUG_MEDIUM)){
  207.             return LogLevels.LOG_LEVEL_DEBUG_MEDIUM;
  208.         }
  209.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_DEBUG_HIGH)){
  210.             return LogLevels.LOG_LEVEL_DEBUG_HIGH;
  211.         }
  212.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_OFF)){
  213.             return org.apache.logging.log4j.Level.OFF;
  214.         }
  215.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_ALL)){
  216.             return org.apache.logging.log4j.Level.ALL;
  217.         }else
  218.             return null;
  219.     }

  220.     /**
  221.      * Metodo che effettua la trasformazione di una stringa nell'analogo livello di OpenSPCoop2.
  222.      *
  223.      * @param livello Oggetto Level da ottenere
  224.      * @return L'intero di severita di OpenSPCoop se la trasformazione ha successo, null altrimenti.
  225.      */
  226.     public static int toOpenSPCoop2(String livello){

  227.         if(livello==null)
  228.             return LogLevels.SEVERITA_INFO_PROTOCOL;

  229.         if(livello.equalsIgnoreCase(LogLevels.LIVELLO_FATAL)){
  230.             return LogLevels.SEVERITA_FATAL;
  231.         }
  232.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_ERROR_PROTOCOL)){
  233.             return LogLevels.SEVERITA_ERROR_PROTOCOL;
  234.         }
  235.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_ERROR_INTEGRATION)){
  236.             return LogLevels.SEVERITA_ERROR_INTEGRATION;
  237.         }  
  238.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_INFO_PROTOCOL)){
  239.             return LogLevels.SEVERITA_INFO_PROTOCOL;
  240.         }
  241.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_INFO_INTEGRATION)){
  242.             return LogLevels.SEVERITA_INFO_INTEGRATION;
  243.         }
  244.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_DEBUG_LOW)){
  245.             return LogLevels.SEVERITA_DEBUG_LOW;
  246.         }
  247.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_DEBUG_MEDIUM)){
  248.             return LogLevels.SEVERITA_DEBUG_MEDIUM;
  249.         }
  250.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_DEBUG_HIGH)){
  251.             return LogLevels.SEVERITA_DEBUG_HIGH;
  252.         }
  253.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_OFF)){
  254.             return LogLevels.SEVERITA_OFF;
  255.         }
  256.         else if(livello.equalsIgnoreCase(LogLevels.LIVELLO_ALL)){
  257.             return LogLevels.SEVERITA_ALL;
  258.         }else
  259.             return LogLevels.SEVERITA_ALL;
  260.     }


  261.     /**
  262.      * Metodo che effettua la trasformazione da un livello di severita nell'analogo livello in stringa.
  263.      *
  264.      * @param valueLivello Livello da trasformare
  265.      * @return Il livello in stringa se la trasformazione ha successo, false altrimenti.
  266.      */
  267.     public static String toOpenSPCoop2(int valueLivello){
  268.         return toOpenSPCoop2(valueLivello,false);
  269.     }
  270.     public static String toOpenSPCoop2(int valueLivello, boolean includeOffAll){
  271.         if( valueLivello == LogLevels.SEVERITA_FATAL ){
  272.             return LogLevels.LIVELLO_FATAL;
  273.         }  else if( valueLivello == LogLevels.SEVERITA_ERROR_PROTOCOL ){
  274.             return LogLevels.LIVELLO_ERROR_PROTOCOL;
  275.         }  else if( valueLivello == LogLevels.SEVERITA_ERROR_INTEGRATION ){
  276.             return LogLevels.LIVELLO_ERROR_INTEGRATION;
  277.         }  else if( valueLivello == LogLevels.SEVERITA_INFO_PROTOCOL ){
  278.             return LogLevels.LIVELLO_INFO_PROTOCOL;
  279.         }  else if( valueLivello == LogLevels.SEVERITA_INFO_INTEGRATION ){
  280.             return LogLevels.LIVELLO_INFO_INTEGRATION;
  281.         } else if( valueLivello == LogLevels.SEVERITA_DEBUG_LOW ){
  282.             return LogLevels.LIVELLO_DEBUG_LOW;
  283.         } else if( valueLivello == LogLevels.SEVERITA_DEBUG_MEDIUM ){
  284.             return LogLevels.LIVELLO_DEBUG_MEDIUM;
  285.         } else if( valueLivello == LogLevels.SEVERITA_DEBUG_HIGH ){
  286.             return LogLevels.LIVELLO_DEBUG_HIGH;
  287.         } else{
  288.             if(includeOffAll){
  289.                 if( valueLivello == LogLevels.SEVERITA_ALL ){
  290.                     return LogLevels.LIVELLO_ALL;
  291.                 }  else if( valueLivello == LogLevels.SEVERITA_OFF ){
  292.                     return LogLevels.LIVELLO_OFF;
  293.                 }
  294.             }
  295.             return null;
  296.         }
  297.     }
  298. }