> What do you mean by additivity flag? please read the link i sent > I've noticed that replacing the > _log.debug with System.out.println() does not result in the same error:
Yes - of course. Your property file shows 2 appenders logging to the cmd, the root logger and the consoleAppender. If you comment the 2 two lines starting with: log4j.appender.consoleAppender it should look cool Cheers! ... > 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 <[email protected]> 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 >> <[email protected]> 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 <[email protected]> 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 >> >> <[email protected]> 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#noconfig >> >> > for >> >> > 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: [email protected] >> >> > 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: [email protected] >> >> > For additional commands, e-mail: [email protected] >> >> > >> >> >> >> >> >> >> >> -- >> >> http://www.grobmeier.de >> > >> > >> > >> > -- >> > Jonathan Camilleri >> > >> > Mobile (MT): 00356 7982 7113 >> > E-mail: [email protected] >> > 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: [email protected] > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
