লগ 4 জে প্রতিদিনের আবর্তন এবং কোনও ফাইল অ্যাপেন্ডারের সাথে মাসিক ধরে রাখা


11

লোগ 4 জে সংযোজনকারীদের দ্বারা নির্দিষ্ট ঘূর্ণন সময় এবং ধারণের সীমা সহ লগগুলি লিখতে কি এটি সম্ভব?
লক্ষ্যটি হ'ল:

  • প্রতিটি দিনের জন্য একটি লগ ফাইল আছে; নতুন লগগুলির জন্য মধ্যরাতে একটি নতুন ফাইল তৈরি করুন
  • লগ ফাইলগুলি রাখতে এবং নির্দিষ্ট সময়ের পরে স্বয়ংক্রিয়ভাবে মুছতে; সুতরাং এক্স দিনের চেয়ে পুরানো লগ ফাইলগুলি মুছুন (উদাহরণস্বরূপ 30 দিন)

দেখে মনে হচ্ছে যে ঘোরানো সম্ভব তবে লগ 4 জে সহ ধারণের সময় সীমাটি সম্ভব নয়

লগ 4 জে সংস্করণটি 1.2।

উত্তর:


4

এই log4J বৈশিষ্ট্যগুলি আমার জন্য কাজ করে

log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=/opt/cronjob/logs/cronlogs.log
log4j.appender.file.MaxFileSize=1028MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

4

আমার উত্তর ভিত্তিক logback, না log4j(বিভ্রান্তির জন্য দুঃখিত ..)


আপনি ব্যবহার করে যে লগ ঘূর্ণন অর্জন করতে পারেন TimeBasedRollingPolicy

উদাহরণ স্বরূপ)

<appender name="SYSTEMLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>./logs/system.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>./logs/system.log.%d{yyyy-MM-dd}</fileNamePattern>
    <!-- keep last 30 days of logs -->
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <charset>UTF-8</charset>
      <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %msg %n</Pattern>
  </encoder>
</appender>

এটি মধ্যরাতে ঘোরানো হবে, এবং 30 দিনের বেশি পুরানো লগ ফাইলগুলি মুছবে।

fileNamePattern: রোলওভার সময়কাল ফাইলনামপ্যাটার্নের মান থেকে অনুমান করা হয়

ম্যাক হিস্টোরি: alচ্ছিক ম্যাকহিসটরি সম্পত্তি সর্বাধিক সংখ্যক সংরক্ষণাগার ফাইলগুলি নিয়ন্ত্রণ করতে পারে, অবিচ্ছিন্নভাবে পুরানো ফাইলগুলি মুছে দেয়। উদাহরণস্বরূপ, আপনি যদি মাসিক রোলওভার নির্দিষ্ট করে থাকেন এবং সর্বোচ্চ 6 টি সেট করে থাকেন তবে 6 মাসের পুরানো ফাইলগুলি 6 মাসেরও বেশি পুরানো ফাইলের সাথে রাখা হবে। নোট করুন যেহেতু পুরানো সংরক্ষণাগারযুক্ত লগ ফাইলগুলি সরানো হয়েছে, লগ ফাইল সংরক্ষণাগার করার উদ্দেশ্যে যে কোনও ফোল্ডার তৈরি করা হয়েছে তা যথাযথভাবে সরানো হবে।

আপনি টাইমবেসডরোলিংপলিসিতে আরও তথ্য পরীক্ষা করতে পারেন


@ পলএডিসন কেবল কৌতূহল, এই কনফিগারেশনগুলি কি কাজ করছে না?
javaGroup456

1
এই সমাধানটি লগব্যাকের ভিত্তিতে নয় লগ
-4j

বাহ .... @ বেনবেনু ঠিক আছে !! আমি বুঝতে পারছি না কেন আমি এই প্রশ্নটিকে লগব্যাক হিসাবে ভুল বুঝিছিলাম ..... আমাকে মনে করিয়ে দেওয়ার জন্য আপনাকে ধন্যবাদ। লগ 4 জের জন্য দয়া করে তার উত্তরটি উল্লেখ করুন।
টোনারিমোচি

3

হ্যাঁ আমরা পারি!

ফাইল: project->src->main->resources->logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>folderName/logFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>folderName/archive/logFile.%d{dd-MM-yyyy}.log</fileNamePattern>
      <!-- keep last 30 days of logs -->
      <maxHistory>30</maxHistory>
    </rollingPolicy>

    <!-- filter by level (optional) -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>DEBUG</level>
    </filter>

    <encoder>
      <pattern>%date %-5level [%thread] %file:%L [%M] - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- you can filter by type of level (optional) -->
  <root level="DEBUG">
    <appender-ref ref="FILE"/>
  </root>
</configuration>

আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন: টাইমবেসডরোলিংপলিসি

জাভাডোক: টাইমবেসডরোলিংপলিস


1

বেশিরভাগ উত্তর লগব্যাকের উপর ভিত্তি করে। তবে প্রশ্নটি log4j 1.2 সম্পর্কে (পুরানো ...)

ডেইলি রোলিংফাইলে অ্যাপেন্ডারের উল্লেখ করা উত্তরটিও কাজ করবে না। সম্পত্তিটি org.apache.log4j.DailyRollingFileAppenderসমর্থন করে না http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DaiilyRollingFileAppender.html (এটি এর জন্য )MaxBackupIndexRollingFileAppender

আপনার আগ্রহী হতে পারে: ডেইলি রোলিংফাইলে অ্যাপ্লেন্ডার-লগ 4 জে ম্যাক্সব্যাকআপআইডেক্স ব্যবহার করুন

এবং একটি সম্ভাব্য উত্তরের জন্য: লগ 4 জে রোলিংপলিসি এবং ম্যাক্সব্যাকআপআইডেক্স

তবে আপনার সম্ভবত slf4j লগ 4j "এমুলেশন" ( http://www.slf4j.org/legacy.html#log4j-over-slf4j ) ব্যবহার করা উচিত এবং লগব্যাকের মাধ্যমে আপনার লগটি (কোনও কোড পরিবর্তন ছাড়াই) এমন জায়গায় চালানো উচিত যেখানে এটি প্রয়োগ করা আরও সহজ where ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.