logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Camilleri <camilleri....@gmail.com>
Subject Re: No appenders could be found for logger (poker.Deck) [WARN]
Date Sun, 24 Apr 2011 12:00:35 GMT
What do you mean by additivity flag?  I've noticed that replacing the
_log.debug with System.out.println() does not result in the same error:

...
System.out.println(playerOne);
...
Output
Player One holds the following cards: THREE of DIAMONDS KING of DIAMONDS

whilst...
...
_log.debug(playerTwo + ".");
...
Output
172 [main] DEBUG poker.Poker  - Player Two holds the following cards: TEN of
DIAMONDS SEVEN of SPADES .
172 [main] DEBUG poker.Poker  - Player Two holds the following cards: TEN of
DIAMONDS SEVEN of SPADES .
172 [main] DEBUG poker.Poker  - Player Two holds the following cards: TEN of
DIAMONDS SEVEN of SPADES .
...


On 24 April 2011 13:22, Christian Grobmeier <grobmeier@gmail.com> wrote:

> Hey Jonathan,
>
> the log4j configuration is more of interest for your case. However, as
> you now got output, I assume the logging itself is working.
>
> Your double entries - for that i am pretty sure - come from the additivity
> flag.
>
> Please go to: http://logging.apache.org/log4j/1.2/manual.html
> and search for "Appender Additivity"
>
> This will help you
>
> cheers
>
>
> On Sun, Apr 24, 2011 at 1:17 PM, Jonathan Camilleri
> <camilleri.jon@gmail.com> wrote:
> > Well thanks for the information about pom.xml, I'm trying to stick with
> > log4j.properties, so I'm attaching a copy of my cmd.log - command line
> log.
> > I've encountered another weird problem when trying to review the output
> of
> > Apache log 4j on the console, since some how lines are being written
> > multiple times, although I suspect this has to do with looping through an
> > ArrayList (a java problem), however, I am not sure, because I haven't
> > noticed any flaws in my code:
> > Code
> > package poker;
> > import java.awt.Image;
> > import java.io.BufferedInputStream;
> > import java.io.File;
> > import java.io.FileInputStream;
> > import java.io.IOException;
> > import java.io.InputStream;
> > import java.util.*;
> > import javax.imageio.ImageIO;
> > import org.apache.log4j.BasicConfigurator;
> > import org.apache.log4j.Logger;
> > public class Poker {
> > public static void main(String[] args) {
> > BasicConfigurator.configure();
> > ...
> > Player playerOne = new Player("Player One");
> > playerOne.getCardFromDealer(getTopCard());
> > playerOne.getCardFromDealer(getTopCard());
> > _log.debug(playerOne + ".");
> > _log.debug(playerOne.hashCode());
> > Player playerTwo = new Player("Player Two");
> > playerTwo.getCardFromDealer(getTopCard());
> > playerTwo.getCardFromDealer(getTopCard());
> > _log.debug(playerTwo + ".");
> > _log.debug(playerTwo.hashCode());
> > ...
> > for (int i = 0; i < deckOfCards.size(); i++) {
> > _log.debug(deckOfCards.get(i));}
> > }
> > private static void getCards (boolean _shuffled) {
> > short iCount = 0;
> > for (short suit = 1; suit <= MAX_SUITS_IN_DECK; suit++){
> > for (short rank = 1; rank <= MAX_RANK_IN_DECK; rank++) {
> > deckOfCards.add(new Card(suit, rank));
> > iCount++;
> > }}
> > if (_shuffled == true){Collections.shuffle(deckOfCards, new Random());}
> > }
> >
> > private static Card getTopCard() {
> > Card _cardRemoved = deckOfCards.get(1);
> > deckOfCards.remove(1);
> > return _cardRemoved;
> > }
> > private static void readIcons(){
> >      String _filename;
> >      //read icons
> >      Image _image = null;
> >      File _file = null;
> >      InputStream _is = null;
> >      for (int i = 1; i < MAX_CARDS_IN_DECK + 1; i++) {
> >      try {
> >      /* Security information: filenames should not be altered manually by
> an
> > Administrator, and,
> >      should be available within the same directory where the source code
> > runs. */
> >      if (i < 10) {_filename = "0" + Integer.toString(i);}
> >      else {_filename = Integer.toString(i);}
> >      String _temp = _filename;
> >      _filename = _temp + ".GIF";
> >      //TODO: Relative path might change when implementing?
> >      _filename = System.getProperty("user.dir") + "\\img\\" + _filename;
> >      _file = new File(_filename);
> >      //read from an input stream
> >      _is = new BufferedInputStream (new FileInputStream(_filename));
> >      _image = ImageIO.read(_is);
> >      if (_file.exists()) {
> >      CardIcons.add(_image);
> >      _log.debug(_filename + " loaded.");
> >      }
> >      }
> >      catch (IOException e) { _log.debug(e.getMessage()); }
> >      }
> >     }
> > private static ArrayList<Image> CardIcons = new ArrayList<Image>();
> > private static ArrayList<Card> deckOfCards = new ArrayList<Card>();
> > private static final Logger _log = Logger.getLogger(Poker.class);
> > public static final short MAX_CARDS_IN_DECK = 52;
> > public static final short MAX_SUITS_IN_DECK = 4;
> > public static final short MAX_RANK_IN_DECK = 13;
> > public static final short MAX_PLAYERS_PER_TABLE = 5;
> > public static final short MAX_GAMES_PER_SESSION = 1; //TODO: implement
> > concurrent games and UI at a later stage.
> > /* References
> > * ----------
> > * Information about poker at http://en.wikipedia.org/wiki/Poker.
> > * List of poker hands at http://en.wikipedia.org/wiki/Poker_hands.
> > * Rules for Texas Hold'Em at http://en.wikipedia.org/wiki/Texas_hold_'em
> .
> >  This will be implemented at a later stage.
> > * Steve Badger, How to Play Poker at
> > http://www.playwinningpoker.com/articles/how-to-play-poker.
> > * Graphics to be implemented at a later stage.
> > */
> > }
> > Player.java
> > ...
> > public String toString() {
> > String _cardsHeld = "";
> > BasicConfigurator.configure();
> > //TODO: DEBUG grammatical error i.e. comma separating each card and "."
> for
> > the last card, the last rule is not working as expected.
> > for (int i = 0; i < CardsHeld.size(); i++) {_cardsHeld +=
> > CardsHeld.get(i).toString() + " ";}
> > return (name + " holds the following cards: " + _cardsHeld) ;
> > }
> > ...
> > public int hashCode() {
> > int _hash = 7;
> > int _cpCount = this.name.codePointCount(0, name.length());
> > int _codePointV = 0;
> > while (_cpCount < this.name.length()) {
> > _codePointV += this.name.codePointAt(_cpCount);
> > _cpCount++;
> > }
> > _hash = _hash * 31 + _codePointV;
> > return _hash;
> > }
> >
> > Output
> > [main] DEBUG poker.Poker  - Player One holds the following cards: TEN of
> > HEARTS SEVEN of CLUBS .
> > 172 [main] DEBUG poker.Poker  - Player One holds the following cards: TEN
> of
> > HEARTS SEVEN of CLUBS .
> > 172 [main] DEBUG poker.Poker  - 217
> > 172 [main] DEBUG poker.Poker  - 217
> > 172 [main] DEBUG poker.Poker  - Player Two holds the following cards:
> SEVEN
> > of SPADES TEN of CLUBS .
> > 172 [main] DEBUG poker.Poker  - Player Two holds the following cards:
> SEVEN
> > of SPADES TEN of CLUBS .
> > 172 [main] DEBUG poker.Poker  - Player Two holds the following cards:
> SEVEN
> > of SPADES TEN of CLUBS .
> > 172 [main] DEBUG poker.Poker  - 217
> > 172 [main] DEBUG poker.Poker  - 217
> > 172 [main] DEBUG poker.Poker  - 217
> > Rgds,
> > Jonathan
> >
> > On 24 April 2011 11:05, Christian Grobmeier <grobmeier@gmail.com> wrote:
> >>
> >> Hello Jonathan,
> >>
> >> this message appears when the log4j.xml|properties file could not be
> >> found on your classpath.
> >> Usually it should be at src/main/resources, this folder visible as
> >> classpath folder on eclipse.
> >>
> >> However you can start your app with -Dlog4j.debug=true to spot out at
> >> which locations your configuration is searched
> >>
> >> Your pom.xml is a maven file and should not have any impact on log4j
> >> (except you need the dependency of course). Same is true for eclipse.
> >> Only th elocation of your config file is important.
> >>
> >> Cheers
> >>
> >> On Sat, Apr 23, 2011 at 6:53 PM, Jonathan Camilleri
> >> <camilleri.jon@gmail.com> wrote:
> >> > Hi,
> >> > Any idea why my logger is not logging (see Deck.java).  Error message:
> >> > log4j:WARN No appenders could be found for logger (poker.Deck).
> >> > log4j:WARN Please initialize the log4j system properly.
> >> > log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfigfor
> >> > more info.
> >> > TWO of CLUBS
> >> > Having, googled the issue, I tried adding pom.xml to the directory
> where
> >> > the
> >> > source code files reside.  I am using Eclipse 3.6.2, which has an
> >> > intricate
> >> > way of adding JARs to my project.
> >> > Any ideas?
> >> >
> >> > --
> >> > Jonathan Camilleri
> >> >
> >> > Mobile (MT): 00356 7982 7113
> >> > E-mail: camilleri.jon@gmail.com
> >> > Please consider your environmental responsibility before printing this
> >> > e-mail.
> >> >
> >> > I usually reply to e-mails within 2 business days.  If it's urgent,
> give
> >> > me
> >> > a call.
> >> >
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> >> > For additional commands, e-mail: log4j-user-help@logging.apache.org
> >> >
> >>
> >>
> >>
> >> --
> >> http://www.grobmeier.de
> >
> >
> >
> > --
> > Jonathan Camilleri
> >
> > Mobile (MT): 00356 7982 7113
> > E-mail: camilleri.jon@gmail.com
> > Please consider your environmental responsibility before printing this
> > e-mail.
> >
> > I usually reply to e-mails within 2 business days.  If it's urgent, give
> me
> > a call.
> >
>
>
>
> --
> http://www.grobmeier.de
>



-- 
Jonathan Camilleri

Mobile (MT): 00356 7982 7113
E-mail: camilleri.jon@gmail.com
Please consider your environmental responsibility before printing this
e-mail.

I usually reply to e-mails within 2 business days.  If it's urgent, give me
a call.

Mime
View raw message