modSyslog.class.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  3. * Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 3 of the License, or
  8. * (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License
  16. * along with this program. If not, see <https://www.gnu.org/licenses/>.
  17. */
  18. /**
  19. * \defgroup syslog Module syslog
  20. * \brief Module pour gerer les messages d'erreur dans syslog
  21. * \file htdocs/core/modules/modSyslog.class.php
  22. * \ingroup syslog
  23. * \brief Description and activation file for the module syslog
  24. */
  25. include_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
  26. /**
  27. * Class to enable/disable module Logs
  28. */
  29. class modSyslog extends DolibarrModules
  30. {
  31. /**
  32. * Constructor. Define names, constants, directories, boxes, permissions
  33. *
  34. * @param DoliDB $db Database handler
  35. */
  36. public function __construct($db)
  37. {
  38. $this->db = $db;
  39. $this->numero = 42;
  40. // Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
  41. // It is used to group modules in module setup page
  42. $this->family = "base";
  43. // Module position in the family on 2 digits ('01', '10', '20', ...)
  44. $this->module_position = '75';
  45. // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
  46. $this->name = preg_replace('/^mod/i', '', get_class($this));
  47. // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
  48. $this->description = "Activate debug logs (syslog)";
  49. // Can be enabled / disabled only in the main company
  50. $this->core_enabled = 1;
  51. // Possible values for version are: 'development', 'experimental', 'dolibarr' or version
  52. $this->version = 'dolibarr';
  53. // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
  54. $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
  55. // Name of image file used for this module.
  56. $this->picto = 'bug';
  57. // Data directories to create when module is enabled
  58. $this->dirs = array();
  59. // Config pages
  60. $this->config_page_url = array("syslog.php");
  61. // Dependencies
  62. $this->hidden = false; // A condition to hide module
  63. $this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
  64. $this->requiredby = array(); // List of module ids to disable if this one is disabled
  65. $this->conflictwith = array(); // List of module class names as string this module is in conflict with
  66. $this->phpmin = array(7, 0); // Minimum version of PHP required by module
  67. // Constants
  68. $this->const = array();
  69. // Boxes
  70. $this->boxes = array();
  71. // Permissions
  72. $this->rights = array();
  73. $this->rights_class = 'syslog';
  74. // Cronjobs
  75. $comment = 'Compress and archive log files. The number of versions to keep is defined into the setup of module. ';
  76. $comment .= 'Warning: Main application cron script must be run with same account than your web server to avoid to get log files with different owner than required by web server. ';
  77. $comment .= 'Another solution is to set web server Operating System group as the group of directory documents and set GROUP permission "rws" on this directory so log files will always have the group and permissions of the web server Operating System group.';
  78. $this->cronjobs = array(
  79. 0 => array(
  80. 'label' => 'CompressSyslogs',
  81. 'jobtype' => 'method',
  82. 'class' => 'core/class/utils.class.php',
  83. 'objectname' => 'Utils',
  84. 'method' => 'compressSyslogs',
  85. 'parameters' => '',
  86. 'comment' => $comment,
  87. 'frequency' => 1,
  88. 'unitfrequency' => 3600 * 24,
  89. 'priority' => 50,
  90. 'status' => 0,
  91. 'test' => true
  92. )
  93. );
  94. }
  95. }