Skip to main content

log4j2 in java maven

1. Install the log4jcore maven dependency
2. Install the log4japi maven dependency

3. Then write the below code just make sure you are importing the the packages just check while you are importing import these two only I have imported other log and faced some problem thats why i am saying


package com.sandy;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


public class App {

    private static final Logger logger=LogManager.getLogger(App.class);
    public static void main(String[] args) {
       
        System.out.println("hello world");

        logger.trace("this is the trace message");
        logger.debug("this is the debug message");
        logger.info("this is the info message");   
        logger.warn("this is the debug message");
        logger.error("This is error logs");
        logger.fatal("fatal");
    }

}



4. Write now it will take the default configuration lets learn how we can use the configuration using an xml file

5. NOTE:- There are two ways to configure any framework either programatically by creating class and or by creating an xml right now we will look into using the xml approach.

6.Paste this in the file name log4j2.xml
7. Create a file in the source foder and try to close or refresh the project once
8. Now all the child class can use the same logger


<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="ConsoleAppender" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <File name="FileAppender" fileName="application-${date:yyyyMMdd}.log" immediateFlush="false" append="true">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="ConsoleAppender" />
            <AppenderRef ref="FileAppender"/>
        </Root>
    </Loggers>
</Configuration>


9. So I will be creating either for each class logger object or we can just use the parent class logger object

This is one more examples

import com.sandy.testcases.*;

public class App {

   
    public static  Logger logger=LogManager.getLogger("devpinoyLogger");
    public static void main(String[] args) {
       
        TestClass.displayingLogs();
       

        logger.trace("this is the trace message");
        logger.debug("this is the debug message");
        logger.info("this is the info message");   
        logger.warn("this is the debug message");
        logger.error("This is error logs");
        logger.fatal("fatal");
       
       
        rbga.createRBGA();
       
       
    }
   
   

}

Comments

Popular posts from this blog

Xpath toughest

1. //span[contains(text(),'Please enter the comments!')]//following-sibling::div//input//following-sibling::textarea Some of the other Xpaths are 1. search RBGA //clicking on the new request //a[@title='Request a new workflow for RB General Approval Form']         @FindBy(xpath="//body[contains(@class,'ext-safari')]/form[contains(@name,'workOnIssueForm')]/table[contains(@class,'jiraform maxWidth')]/tbody/tr/td[contains(@class,'rb_formArea')]/fieldset[contains(@class,'rb_WorkON_FieldSet')]/table/tbody/tr/td/div[contains(@class,'rb_WorkON_FieldContainer')]/div[contains(@class,'rb_WorkON_FieldValueArea rb_WorkON_FieldValueArea_create rb_WorkON_ValueArea_Wide')]/table[contains(@class,'workonstdtable')]/tbody/tr/td/input[1]")     public WebElement tickMark;         @FindBy(xpath="//body[contains(@class,'ext-safari')]/form[contains(@name,'workOnIssueForm')]/table[contains(@class,...

Date Time API

Issues with the Existing   Date / Time   APIs 1. Thread Safefty:- develpoers have to deal with concurrency issues.new date and time api in java 8 are immutable and thread safe and thus taking concurrency headache away from developers. 2. API Design and Ease of Understanding: good utility methods in new API 3. Zoned Date and Time Functinality is added. 4. The format that I have used in my project is basically a user defined format String userdefinedDate=localdate.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")); System.out.println(userdefinedDate); ==================================================================== Study Link https://www.baeldung.com/java-8-date-time-intro#:~:text=Java%208%20provides%20ZonedDateTime%20when,to%20represent%20them%20as%20follows. Working With   LocalDate LocalDate localDate = LocalDate.now(); LocalDate.of(2015, 02, 20); LocalDate tomorrow = LocalDate.now().plusDays( 1 ); DayOfWeek sunday = LocalDate.parse("2016-06-12").getDayOfWeek...