Magento 2 update.log हर मिनट महत्वपूर्ण आकार बढ़ाता है


9

अपडेट करें:

मैंने लॉग-इन उपयोगिता का उपयोग करके बढ़ती-बढ़ती लॉग फ़ाइलों को संभालने के लिए समाप्त किया। मैंने कुछ क्रोन नौकरियों की भी स्थापना की है जो समय-समय पर अनावश्यक अस्थायी फ़ाइलों की जाँच करेगी।


मैं मानक Magento के 2 क्रोन कॉन्फ़िगर और चल रहा है। दो दिनों के बाद, मुझे व्यवस्थापक पैनल में कुछ क्रियाएं चलाते समय कुछ समस्याओं का सामना करना पड़ा। जब मैंने सर्वर लॉग की जाँच की, तो मुझे पता चला कि यह एक डिस्क स्थान समस्या थी। आगे की जांच के बाद, मुझे पता चला कि यह update.log.txtअपराधी है। फ़ाइल का आकार हर मिनट> 1MB बढ़ रहा था। एक समय था जब यह 20GB से अधिक पहुंच गया था।

यहां छवि विवरण दर्ज करें

क्या यह एक मानक Magento 2 सेटअप के लिए सामान्य है? या मैं इसे कैसे अक्षम कर सकता हूं या कम से कम इसे कम कर सकता हूं?

यह डेवलपर और उत्पादन मोड दोनों के लिए होता है।

क्रोन सेटअप इस गाइड पर आधारित था ।

क्रोन टैब:

* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log
* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log

लॉग के नमूने

/var/www/html/setup/src/Magento/Setup/Console/Command/I18nCollectPhrasesCommand.php/var/www/html/setup/src/Magento/Setup/Console/Command/MainuranceStatusCommand.php /setup/src/Magento/Setup/Console/Command/BackupCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/D dependenciesShowFrameworkCommand.php/ var / html / setup / src / /Setup/Console/Command/UninstallCommand.php/var/www/html/setup/src/Magento/Setup/Console/Command/InfoTimezoneLomCommand.php / var / www / सेटअप / src / Magento / Setup / Console / Command / Command /MainuranceAllowIpsCommand। / www / html / सेटअप / src / Magento / सेटअप / कंसोल / कमांड / InfoBackupsListCommand।php /var/www/html/setup/src/Magento/Setup/Console/Command/MaintainDisableCommand.php/var/www/html/setup/src/Magento/Setup/Console/Command/DiCompileCommand.php / var html / सेटअप / src / Magento / Setup / Console / Command / InstallCommand.php /var/www/html/setup/src/Magento/Setup/Console/Command/Upgrade.ommand.php / var / www / सेटअप / src / src / Magento / सेटअप / फिक्स्चर / IndexersStatesApplyFixture.php/var/www/html/setup/src/Magento/Setup/Fixtures/StoresFixture.php/var/html/setup/src/Magento/Setup/Feteries/Categories फ़िफ़्क्चर var / www / html / setup / src / Magento / Setup / जुड़नार / SimpleProductsFixture.php /var/www/html/setup/src/Magento/Setup/Fixtures/taxc.csv / var / www / html / सेटअप / src / src / Magento / Setup / Validator / var / www / html / setup / src / Magento / Setup / Validator / DbValidator।php /var/www/html/setup/src/Magento/Setup/Validator/IpValidator.php /var/www/setup/src/Magento/Setup/Validator/AdminCredentialsValidator.php / var / html / सेटअप / सेटअप index.php / var / www / html / setup / performance-toolkit /var/www/html/setup/performance-toolkit/.htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE /var/www/html/setup/performance-toolkit/profiles/ce/large.xml /var/www/html/setup/performance-toolkit-profiles/ce/small.xml /var/www/html/setup/performance-toolkit/profiles/ce/medium.xml/var/www/html/setup/perupance-toolkit/profiles/ce/extra_large.xml / var / www / html / सेटअप / प्रदर्शन -toolkit / README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess []]php /var/www/html/setup/src/Magento/Setup/Validator/AdminCredentialsValidator.php /var/www/setup/index.php / var / www / html / सेटअप / प्रदर्शन-टूलकिट / var / www / www html / सेटअप / प्रदर्शन-टूलकिट / .htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE / var / www / html / सेटअप / प्रदर्शन -toolkit / प्रोफाइल / Ce / big.xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-tupkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml/var/www/html/setup/performance-toolkit/README.txt / var / www / html / सेटअप / प्रदर्शन-टूलकिट / बेंचमार्क .jmx /var/www/html/vendor/.htaccess [] []php /var/www/html/setup/src/Magento/Setup/Validator/AdminCredentialsValidator.php /var/www/setup/index.php / var / www / html / सेटअप / प्रदर्शन-टूलकिट / var / www / www html / सेटअप / प्रदर्शन-टूलकिट / .htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE / var / www / html / सेटअप / प्रदर्शन -toolkit / प्रोफाइल / Ce / big.xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/performance-tupkit/profiles/ce/medium.xml /var/www/html/setup/performance-toolkit/profiles/ce/extra_large.xml/var/www/html/setup/performance-toolkit/README.txt / var / www / html / सेटअप / प्रदर्शन-टूलकिट / बेंचमार्क .jmx /var/www/html/vendor/.htaccess [] []php / var / www / html / setup / performance-toolkit /var/www/setup/perupance-toolkit/.htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE /var/www/html/setup/performance-toolkit/profiles/ce/large.xml /var/www/html/setup/performance-toolkit/profile-ce/small.xml / var /www/html/setup/performance-toolkit/profiles/ce/medium.xml/var/www/html/setup/perupance-toolkit/profiles/ce/extra_large.xml/ var / www / html / सेटअप / प्रदर्शन-टूलकिट /README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess []]php / var / www / html / setup / performance-toolkit /var/www/setup/perupance-toolkit/.htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE /var/www/html/setup/performance-toolkit/profiles/ce/large.xml /var/www/html/setup/performance-toolkit/profile-ce/small.xml / var /www/html/setup/performance-toolkit/profiles/ce/medium.xml/var/www/html/setup/perupance-toolkit/profiles/ce/extra_large.xml/ var / www / html / सेटअप / प्रदर्शन-टूलकिट /README.txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess []]htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / Ce / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE / बड़ी। xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/perupance-toolkit/profiles/ce/medium.xml / var / www / html / सेटअप / सेटअप प्रदर्शन-टूलकिट / प्रोफाइल / CE / extra_large.xml /var/www/setup/perupance-toolkit/README.txt /var/www/html/setup/performance-toolkit-benchmark.jmx / var / www / html / html वेंडर / .htaccess [] []htaccess / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / Ce / var / www / html / सेटअप / प्रदर्शन-टूलकिट / प्रोफाइल / CE / बड़ी। xml /var/www/html/setup/performance-toolkit/profiles/ce/small.xml /var/www/html/setup/perupance-toolkit/profiles/ce/medium.xml / var / www / html / सेटअप / सेटअप प्रदर्शन-टूलकिट / प्रोफाइल / CE / extra_large.xml /var/www/setup/perupance-toolkit/README.txt /var/www/html/setup/performance-toolkit-benchmark.jmx / var / www / html / html वेंडर / .htaccess [] []txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess []]txt /var/www/html/setup/performance-toolkit/benchmark.jmx /var/www/html/vendor/.htaccess []]

मुझे कुछ स्थान मिले जहाँ यह लॉग जनरेट / अपडेट किया जा सकता है:

<INSTALL_DIR>setup\src\Magento\Setup\Console\Command\CronRunCommand.php:
       75      protected function execute(InputInterface $input, OutputInterface $output)
       76      {
       77:         $notification = 'setup-cron: Please check var/log/update.log for execution summary.';
       78  
       79          if (!$this->deploymentConfig->isAvailable()) {

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\ReadinessCheck.php:
      164          $write->writeFile(self::SETUP_CRON_JOB_STATUS_FILE, $resultJson);
      165  
      166:         // write to permanent log file, var/log/update.log
      167          foreach ($errorLogMessages as $errorLog) {
      168              $this->status->add($errorLog, \Psr\Log\LogLevel::ERROR, false);

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\SetupLoggerFactory.php:
       22      {
       23          $logger = new \Monolog\Logger($channelName);
       24:         $path = BP . '/var/log/update.log';
       25          $logger->pushHandler(new \Monolog\Handler\StreamHandler($path));
       26          return $logger;

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\SetupStreamHandler.php:
       17       * @var string
       18       */
       19:     protected $fileName = '/var/log/update.log';
       20  
       21      /**

    <INSTALL_DIR>setup\src\Magento\Setup\Model\Cron\Status.php:
       81          $this->varReaderWriter = $filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
       82          $this->statusFilePath = $statusFilePath ? $statusFilePath : '.update_status.txt';
       83:         $this->logFilePath = $logFilePath ? $logFilePath : DirectoryList::LOG . '/update.log';
       84          $this->updateInProgressFlagFilePath = $updateInProgressFlagFilePath
       85              ? $updateInProgressFlagFilePath

    <INSTALL_DIR>setup\src\Magento\Setup\Test\Unit\Model\Cron\StatusTest.php:
       71          $this->varReaderWriter->expects($this->any())
       72              ->method('getAbsolutePath')
       73:             ->with('log/update.log')
       74:             ->willReturn('DIR/var/log/update.log');
       75:         $this->assertEquals('DIR/var/log/update.log', $this->status->getLogFilePath());
       76      }
       77  

    <INSTALL_DIR>update\app\code\Magento\Update\CronReadinessCheck.php:
       16      const CRON_JOB_STATUS_FILE = '.update_cronjob_status';
       17  
       18:     const UPDATE_CRON_LOG_FILE = 'var/log/update.log';
       19  
       20      /**#@+
       ..
       91          file_put_contents(MAGENTO_BP . '/var/' . self::CRON_JOB_STATUS_FILE, $resultJson);
       92  
       93:         // If non-accessible paths are found, log an 'error' entry for the same in update.log
       94          if ( !$success && !empty($outputString) ) {
       95              $updateLoggerFactory = new UpdateLoggerFactory();

    <INSTALL_DIR>update\app\code\Magento\Update\Status.php:
       67      ) {
       68          $this->statusFilePath = $statusFilePath ? $statusFilePath : MAGENTO_BP . '/var/.update_status.txt';
       69:         $this->logFilePath = $logFilePath ? $logFilePath : MAGENTO_BP . '/var/log/update.log';
       70          $this->updateInProgressFlagFilePath = $updateInProgressFlagFilePath
       71              ? $updateInProgressFlagFilePath

    <INSTALL_DIR>update\app\code\Magento\Update\UpdateLoggerFactory.php:
       29       */
       30      public function __construct(
       31:         $logFile = '/var/log/update.log',
       32          $channelName = 'update-cron'
       33      ) {

    <INSTALL_DIR>update\cron.php:
       15  $status = new \Magento\Update\Status();
       16  $cronReadinessChecker = new \Magento\Update\CronReadinessCheck();
       17: $notification = 'update-cron: Please check var/log/update.log for execution summary.' . PHP_EOL;
       18  
       19  if (!$cronReadinessChecker->runReadinessCheck()) {

    <INSTALL_DIR>update\dev\tests\integration\testsuite\Magento\Update\StatusTest.php:
       43          $this->statusFilePath = __DIR__ . '/_files/update_status.txt';
       44          $this->tmpStatusFilePath = TESTS_TEMP_DIR . '/update_status.txt';
       45:         $this->tmpStatusLogFilePath = TESTS_TEMP_DIR . '/update.log';
       46          $this->updateInProgressFlagFilePath = TESTS_TEMP_DIR . '/update_in_progress.flag';
       47          $this->updateErrorFlagFilePath = TESTS_TEMP_DIR . '/update_error.flag';

अपडेट करें:

मैंने लॉग-इन उपयोगिता का उपयोग करके बढ़ती-बढ़ती लॉग फ़ाइलों को संभालने के लिए समाप्त किया। मैंने कुछ क्रोन नौकरियों की भी स्थापना की है जो समय-समय पर अनावश्यक अस्थायी फ़ाइलों की जाँच करेगी।


1
मैं अपनी दुकान के साथ एक ही मुद्दा रहा हूँ। मेरी अपडेट.लॉग फ़ाइल 23g थी और वास्तव में कल रात मेरी mysql दुर्घटनाग्रस्त हो गई। मुझे यकीन नहीं है कि क्या चल रहा है - मैं एक काफी वेनिला स्थापित है।
बजट

जवाबों:


6

जहाँ तक मुझे पता है, var/log/update.logफ़ाइल का उपयोग वास्तव में क्रोन के साथ किया जाता है।

में घोषित किया जाता है \setup\src\Magento\Setup\Model\Cron\Status.php

$this->logFilePath = $logFilePath ? $logFilePath : DirectoryList::LOG . '/update.log';

और फिर getLogFilePath()विधि के माध्यम से पुनः प्राप्त किया ।

यदि आप जाँचते हैं कि यह विधि कहाँ से लाई जा रही है, तो यह \setup\src\Magento\Setup\Model\Cron\JobFactory.phpनिम्न है:

$logStream = fopen($cronStatus->getLogFilePath(), 'a+');
$streamOutput = new MultipleStreamOutput([$statusStream, $logStream]);

तब $streamOutputचर को नौकरी वर्ग के लिए एक पैरामीटर के रूप में पारित किया जाता है, उदाहरण के लिए:

return new JobUpgrade(
    $this->serviceLocator->get('Magento\Setup\Console\Command\UpgradeCommand'),
    $objectManagerProvider,
    $streamOutput,
    $this->serviceLocator->get('Magento\Setup\Model\Cron\Queue'),
    $cronStatus,
    $name,
    $params
);

यदि मैं इस उदाहरण के साथ जा रहा हूँ, विधि $this->outputमें प्रयोग किया जाता है execute():

$this->command->run(new ArrayInput($this->params), $this->output);

में run()विधि घोषित की गई हैvendor\symfony\console\Symfony\Component\Console\Command\Command.php

$outputचर तो जैसे कई स्थानों में प्रयोग किया जाता है:

    $this->initialize($input, $output);

साथ ही साथ :

    if ($input->isInteractive()) {
        $this->interact($input, $output);
    }

    $input->validate();

    if ($this->code) {
        $statusCode = call_user_func($this->code, $input, $output);
    } else {
        $statusCode = $this->execute($input, $output);
    }

एक और दिलचस्प एक:

        } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) {
            $output->writeln('<comment>Install the proctitle PECL to be able to change the process title.</comment>');
        }

इस अंतिम कोड के अनुसार, कुछ सामान बहुत क्रिया पैरामीटर के मामले में लिखे जा सकते हैं। हो सकता है कि आप अपनी क्रोन नौकरियों के साथ सेटअप करें -vvऔर इसीलिए सामान लॉग हो रहा हो।

यह एक निश्चित जवाब नहीं है, लेकिन आपको उस स्टैक ट्रेस का पालन करना चाहिए जो मैंने आपको केवल इस मुद्दे की जांच करने के लिए दिया था।


2

आप शायद कुछ फ़ोल्डरों पर गलत अनुमतियाँ सेट करते हैं। / अपडेट / क्रोन गलत अनुमति वाले सभी फ़ोल्डरों को सूचीबद्ध करता है

आसान तरीका सिर्फ कॉन्टैब अपडेट और सेटअप में टिप्पणी करना है

#* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
#* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log

यदि आपको व्यवस्थापक पैनल से अपडेट और इंस्टॉल करने की आवश्यकता नहीं है, तो आपको उनकी आवश्यकता नहीं है।

यह उत्पादन सर्वर के लिए खतरनाक विचार है। आप परीक्षण / स्थानीय सर्वर पर संगीतकार के माध्यम से मैन्युअल रूप से अपडेट कर सकते हैं; झसे आज़माओ; फिर उत्पादन सर्वर पर अद्यतन की प्रतिलिपि बनाएँ।

जिसकी आपको वास्तव में आवश्यकता है

* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log

यह "इंडेक्सर्स का प्रबंधन करता है, स्वचालित ई-मेल भेजता है, साइटमैप उत्पन्न करता है, और इसी तरह" - जैसा कि देवदास में वर्णित है


हां, क्रोन को कॉन्फ़िगर करने के लिए Magento 2 प्रलेखन में यह भी संकेत दिया गया था। वैसे भी हम लॉग स्पेस और कुछ कस्टम क्रोन नौकरियों का उपयोग कर समाप्त हो गए, जो डिस्क स्थान उपयोग को अनुकूलित करने के लक्ष्य के साथ, फ़ाइल सिस्टम की जांच और सफाई करते हैं।
7'17

1

/var/log/update.logक्रोन लॉग फ़ाइल है और यह समस्या विशेष रूप से तब आती है जब आपके पास फ़ाइलें होती हैं permission issue। "यह वही है जो मुझे उस मामले में मिला जब मैंने उस फ़ाइल को खोला।"

और यह ठीक हो सकता है: https://community.bitnami.com/t/update-log-file-grows-rapidly-in-magento-2-1-1/49253/6

आपको अपनी Magento निर्देशिकाओं और फ़ाइलों के लिए सही अनुमतियाँ और स्वामित्व सेट करने की आवश्यकता है।


0

जैसा कि मुझे पता update.logहै कि आपकी कस्टम लॉग फाइल है क्योंकि मैगनेटो 2 इस तरह की फाइलों को लॉग करता है

  • var / log / debug.log - Psr \ Log \ LoggerInterface :: debug () द्वारा सहेजी गई सभी जानकारी वहां संग्रहीत की जाती है।
  • var / log / अपवाद.log - सभी अपवाद जानकारी वहाँ संग्रहीत है।
  • var / log / system.log - अन्य लॉगिंग स्तरों की जानकारी वहां सहेजी जाती है।

मुझे यकीन नहीं है कि यह आपकी फ़ाइल में इतना लॉग डेटा क्यों उत्पन्न करता है कुछ वाक्यविन्यास त्रुटि या ऐसा कुछ हो सकता है।

लेकिन मेरा सुझाव है कि बस update.logअपने Magento 2 कोड निर्देशिका में के साथ खोज और अपने कोड से उस लॉग को हटा दें।


नमस्ते, जवाब देने के लिए धन्यवाद। मुझे नहीं लगता कि यह एक कस्टम लॉग है, क्योंकि मैं इसे कुछ डिफ़ॉल्ट मैगेंटो क्लासेस पर पा सकता हूं। मैंने अधिक जानकारी के लिए अपना प्रश्न अपडेट किया है।
लिखना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.