উত্তর:
আপডেট করুন: স্প্রিং বুট v1.2.0.RELEASE থেকে শুরু করে সেটিংস application.properties
বা application.yml
আবেদন করে। রেফারেন্স গাইডের লগ স্তরের বিভাগটি দেখুন ।
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
স্প্রিং বুটের আগের সংস্করণগুলির জন্য আপনি পারবেন না। তার জন্য আপনাকে কেবল আপনার লগিং ফ্রেমওয়ার্কের জন্য (লগ 4 জে, লগব্যাক) সাধারণ কনফিগারেশন ব্যবহার করতে হবে। ডিরেক্টরিতে উপযুক্ত কনফিগার ফাইল ( log4j.xml
বা logback.xml
) যুক্ত করুন src/main/resources
এবং আপনার পছন্দ অনুযায়ী কনফিগার করুন।
--debug
কমান্ড-লাইন থেকে অ্যাপ্লিকেশন শুরু করার সময় নির্দিষ্ট করে আপনি ডিবাগ লগিং সক্ষম করতে পারেন ।
স্প্রিং বুট লগব্যাকের জন্য কিছু ডিফল্ট, রঙিন ইত্যাদি বেস.এক্সএমএল ফাইল যা আপনার লগব্যাক.এক্সএমএল ফাইলের মধ্যে অন্তর্ভুক্ত করতে পারে তা কনফিগার করার জন্য একটি সূচনা পয়েন্টও সরবরাহ করে । (এটি স্প্রিং বুটে ডিফল্ট লগব্যাক.এক্সএমএল থেকেও প্রস্তাবিত) ।
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
বা application.yml
প্রয়োগ করে । :
=
আপনি আপনার অ্যাপ্লিকেশন.প্রপ্রেটিগুলি ব্যবহার করে এটি করতে পারেন।
logging.level.=ERROR
-> রুট লগিং স্তরটিকে ত্রুটি হিসাবে সেট করে
...
logging.level.=DEBUG
-> রুট লগিং স্তরটি DEBUG এ
logging.file=${java.io.tmpdir}/myapp.log
সেট করে -> TMPDIR / myapp.log
এ নিখুঁত লগ ফাইলের পথ নির্ধারণ করে প্রোফাইলগুলি ব্যবহার করে লগিং সম্পর্কিত অ্যাপ্লিকেশন.প্রপ্রেটিগুলির একটি বুদ্ধিমান ডিফল্ট সেটটি হ'ল
: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
logging.level.=DEBUG
logging.file=
আপনি যখন আপনার পছন্দসই আইডিই এর ভিতরে বিকাশ করবেন আপনি কেবল -Dspring.profiles.active=dev
আপনার অ্যাপ্লিকেশনটির চালনা / ডিবাগ কনফিগারেশনে ভিএম যুক্তি যুক্ত করবেন।
এটি আপনাকে লগ ফাইলে আউটপুট লেখার ব্যতীত শুধুমাত্র উত্পাদন এবং ডিবাগ লগিংয়ের সময় লগইনে ত্রুটি দেয়। এটি উন্নয়নের সময় পারফরম্যান্সকে উন্নত করবে (এবং এসএসডি ড্রাইভগুলি কয়েক ঘন্টা চালানোর জন্য সংরক্ষণ করবে;))।
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
অ্যাপ্লিকেশন শুরু করতে ব্যর্থ হবে এবং ত্রুটি পেয়েছে:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
কাছে মনে হয় এটি কেবল একটি সুবিধাযুক্ত সিনট্যাক্টিক শর্টকাট logging.level.root
, যা টাইপের সাথে বিভ্রান্ত হওয়ার জন্য (1) কম প্রবণ হিসাবে সম্ভাব্য হিসাবে চিহ্নিত করা যেতে পারে, (2) সম্ভাব্যভাবে আরও স্পষ্ট, এবং (3) =
অ্যাসাইনমেন্ট সাইন নিয়ে কাজ করা, যা আরও সামগ্রিক ধারাবাহিকতা সরবরাহ করে কনফিগারেশন ফাইল।
রুট লগিং স্তর সেট করার যথাযথ উপায় হল সম্পত্তিটি ব্যবহার করা logging.level.root
। ডকুমেন্টেশন দেখুন , যা এই প্রশ্নটি মূলত জিজ্ঞাসা করার পরে আপডেট করা হয়েছে।
উদাহরণ:
logging.level.root=WARN
মনে করুন আপনার অ্যাপ্লিকেশনটির প্যাকেজের নাম রয়েছে com.company.myproject
। তারপরে আপনি আপনার প্রকল্পের ভিতরে ক্লাসের জন্য লগিং স্তরটি সেট করতে পারেন অ্যাপলিকেশন ropষধি ফাইলগুলিতে নীচে
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
এবং logging.level.org.hibernate = DEBUG
কেবলমাত্র স্প্রিং ফ্রেমওয়ার্ক ওয়েব এবং হাইবারনেটের ক্লাসের জন্য লগিং স্তর সেট করে।
লগিং ফাইলের অবস্থান ব্যবহারের জন্য
logging.file = / home/ubuntu/myproject.log
আপনি যদি স্প্রিং বুটে থাকেন তবে লগিং স্তর সেট করতে, লগিং প্যাটার্নটি কাস্টমাইজ করতে এবং বাহ্যিক ফাইলে লগগুলি সঞ্চয় করতে আপনি সরাসরি অ্যাপ্লিকেশন.প্রপার্টি ফাইলগুলিতে নিম্নলিখিত বৈশিষ্ট্যগুলি যুক্ত করতে পারেন ।
এগুলি বিভিন্ন লগিং স্তর এবং সর্বনিম্ন << সর্বোচ্চ থেকে তার ক্রম।
অফ << ফ্যাটাল << ত্রুটি << সতর্কতা << তথ্য << ডেব << ট্র্যাক << সব
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
আপনার লগ আরও বিশদভাবে কাস্টমাইজ করতে দয়া করে এই লিঙ্কটি মাধ্যমে পাস করুন।
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
আপনি যদি অন্য কোনও লগিং ফ্রেমওয়ার্ক ব্যবহার করতে চান, উদাহরণস্বরূপ লগ 4 জ, আমি খুঁজে পেলাম যে সহজতম পদ্ধতির মধ্যে রয়েছে স্প্রিং বুটগুলির নিজস্ব লগিং নিষ্ক্রিয় করা এবং আপনার নিজের প্রয়োগ করা। এইভাবে আমি প্রতিটি লগলেভেলকে একটি ফাইলের মধ্যে কনফিগার করতে পারি, log4j.xML (আমার ক্ষেত্রে) এটি।
এটি অর্জনের জন্য আপনাকে কেবল আপনার পম.এক্সএমএলগুলিতে এই লাইনগুলি যুক্ত করতে হবে:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
আপনার সম্ভবত ইতিমধ্যে প্রথম নির্ভরতা রয়েছে এবং কেবলমাত্র অন্য দুটি দরকার। দয়া করে মনে রাখবেন, এই উদাহরণটি কেবল লোগ 4 জকে coversেকে রাখে।
এটাই সব, এখন আপনি আপনার লগ 4 জে কনফিগারেশন ফাইলের মধ্যে বুটের জন্য লগিং কনফিগার করতে প্রস্তুত!
log4j.properties
।
আপনি DEBUG এ লগ স্তরটি সেট করার চেষ্টা করতে পারেন এটি অ্যাপ্লিকেশনটি শুরু করার সময় এটি সমস্ত কিছু দেখায়
logging.level.root=DEBUG
রেকর্ডগুলির জন্য: অফিসিয়াল ডকুমেন্টেশন হিসাবে স্প্রিং বুট v1.2.0.RELEASE এবং স্প্রিং v4.1.3.RELEASE হিসাবে:
লগিংয়ের জন্য আপনার যদি প্রয়োজন একমাত্র পরিবর্তনটি হ'ল বিভিন্ন লগারের স্তর নির্ধারণ করা হয় তবে আপনি "লগিং.লেভেল" উপসর্গটি ব্যবহার করে প্রয়োগ করতে পারেন application
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
আপনি "লগিং.ফাইলে" ব্যবহার করে লগ ইন করতে (কনসোল ছাড়াও) কোনও ফাইলের অবস্থানও সেট করতে পারেন।
লগিং সিস্টেমের আরও সূক্ষ্ম-বিন্যস্ত সেটিংস কনফিগার করার জন্য আপনাকে প্রশ্নবিদ্ধ লগিংসিস্টেম দ্বারা সমর্থিত দেশীয় কনফিগারেশন ফর্ম্যাটটি ব্যবহার করতে হবে। ডিফল্টরূপে স্প্রিং বুট সিস্টেমের জন্য এটির ডিফল্ট অবস্থান (যেমন শ্রেণিপথ: লগব্যাক.এক্সএমএল লগব্যাকের জন্য) থেকে স্থানীয় কনফিগারেশনটি তুলতে পারে তবে আপনি "লগিংএকনফিগ" বৈশিষ্ট্যটি ব্যবহার করে কনফিগার ফাইলটির অবস্থান নির্ধারণ করতে পারেন।
আপনি যদি আরও বিশদ সেট করতে চান তবে দয়া করে একটি লগ কনফিগার ফাইলের নাম "লগব্যাক.এক্সএমএল" বা "লগব্যাক-স্প্রিং.এক্সএমএল" যুক্ত করুন।
আপনার অ্যাপ্লিকেশন.প্রপার্টি ফাইলগুলিতে, এই জাতীয় ইনপুট:
logging.config: classpath:logback-spring.xml
লব্যাক-স্প্রিং.এক্সএমএলে, এই জাতীয় ইনপুট:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
বিদ্যমান উত্তরগুলি গ্রেটস। আমি কেবলমাত্র আপনার সাথে একটি নতুন স্প্রিং বুট বৈশিষ্ট্যটি ভাগ করতে চাই যাতে গোষ্ঠী লগগুলিতে এবং পুরো গ্রুপে লগিংয়ের স্তর সেট করে।
দস্তাবেজ থেকে উদাহরণ:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
এটি দুর্দান্ত বৈশিষ্ট্য যা আরও নমনীয়তা নিয়ে আসে।
আমার বর্তমান কনফিগ আমি এটা সংজ্ঞায়িত আছে application.yaml যে মত:
logging:
level:
ROOT: TRACE
আমি স্প্রিং-বুট ব্যবহার করছি: 2.2.0.RELEASE। আপনি কোনও প্যাকেজ সংজ্ঞায়িত করতে পারেন যার মতো ট্র্যাক স্তর থাকতে হবে।
বসন্ত বুট প্রকল্পে আমরা logging.level.root = WARN লিখতে পারি তবে এখানে সমস্যাটি হ'ল, আমরা আবার পুনরায় চালু করতে হবে এমনকি আমরা ডিভলটোল নির্ভরতাও যুক্ত করেছি, সম্পত্তি ফাইলে যদি কোনও মান পরিবর্তিত হয় তবে এই সীমাবদ্ধতার জন্য আমি জানতে পেরেছিলাম সমাধান i, এবং আমরা pom.xML এ অ্যাকিউউটর যুক্ত করতে এবং url বারে পোস্টম্যান ক্লায়েন্টের নীচের হিসাবে লগারের স্তরটি পাস করতে পারি http: // লোকালহস্ট: 8080 / লগার / রুট বা http: // লোকালহস্ট: 8080 / লগার / কম .mycompany এবং শরীরে আপনি নীচের মত json ফর্ম্যাটটি পাস করতে পারেন
{
"configuredLevel": "WARN"
}
গ্রহন আইডির ক্ষেত্রে এবং আপনার প্রকল্পটি মার্ভেন হয়, পরিবর্তনগুলি প্রতিফলিত করতে প্রকল্পটি পরিষ্কার এবং নির্মাণ করতে ভুলবেন না।
স্প্রিংবুট 2 এর সাহায্যে আপনি যেমন পরিবেশের পরিবর্তনশীল এর সাথে রুট লগিং স্তর নির্ধারণ করতে পারেন:
logging.level.root=DEBUG
অথবা আপনি এই জাতীয় প্যাকেজগুলির জন্য নির্দিষ্ট লগিং সেট করতে পারেন:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
Settings
-> পছন্দসই স্তরেConfig Vars
সেট করুনlogging.level.com.yourpackage
(INFO, ERROR, DEBUG)।