diff --git a/block_pool.go b/block_pool.go
index 49fa07eb15e3663990af0c4268b431e48024df23..1cf3ab907131feda58434a19d74c3ca90e469203 100644
--- a/block_pool.go
+++ b/block_pool.go
@@ -10,12 +10,12 @@ import (
 	"time"
 
 	"github.com/ethereum/go-ethereum/chain"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/ethwire"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var poollogger = ethlog.NewLogger("BPOOL")
+var poollogger = logger.NewLogger("BPOOL")
 
 type block struct {
 	from      *Peer
diff --git a/chain/chain_manager.go b/chain/chain_manager.go
index 83ae21dcc19a868ad3dead528c63bd38d185237e..8ee7a85cc96282aaebc9cdbc4b3b0eb40a24fb20 100644
--- a/chain/chain_manager.go
+++ b/chain/chain_manager.go
@@ -5,11 +5,11 @@ import (
 	"fmt"
 	"math/big"
 
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var chainlogger = ethlog.NewLogger("CHAIN")
+var chainlogger = logger.NewLogger("CHAIN")
 
 type ChainManager struct {
 	Ethereum EthManager
diff --git a/chain/dagger.go b/chain/dagger.go
index 66fbbcde492bc156ad9b3f0573173470b2419d2f..3333e002d1705f4373dd7a22624c16d643998b98 100644
--- a/chain/dagger.go
+++ b/chain/dagger.go
@@ -7,12 +7,12 @@ import (
 	"time"
 
 	"github.com/ethereum/go-ethereum/crypto"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/obscuren/sha3"
 )
 
-var powlogger = ethlog.NewLogger("POW")
+var powlogger = logger.NewLogger("POW")
 
 type PoW interface {
 	Search(block *Block, stop <-chan struct{}) []byte
diff --git a/chain/state_manager.go b/chain/state_manager.go
index 9f7a4a0fde5a24ed1273f8211f51451a8944ffd5..8266726f5a83d770904a49dabf4e9b32fed9377f 100644
--- a/chain/state_manager.go
+++ b/chain/state_manager.go
@@ -10,14 +10,14 @@ import (
 	"time"
 
 	"github.com/ethereum/go-ethereum/crypto"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethstate"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/ethwire"
 	"github.com/ethereum/go-ethereum/event"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var statelogger = ethlog.NewLogger("BLOCK")
+var statelogger = logger.NewLogger("BLOCK")
 
 type Peer interface {
 	Inbound() bool
diff --git a/chain/transaction_pool.go b/chain/transaction_pool.go
index 861ebdf003a7859e00b1261bfd2fbe7dcd531127..21d501dfca0a235b0a19ac6d418a532d055beffd 100644
--- a/chain/transaction_pool.go
+++ b/chain/transaction_pool.go
@@ -7,12 +7,12 @@ import (
 	"math/big"
 	"sync"
 
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethstate"
 	"github.com/ethereum/go-ethereum/ethwire"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var txplogger = ethlog.NewLogger("TXP")
+var txplogger = logger.NewLogger("TXP")
 
 const txPoolQueueSize = 50
 
diff --git a/cmd/ethereum/cmd.go b/cmd/ethereum/cmd.go
index a0225b652a3bfed7d8d7fb30197b36e777e82941..d8cb19eaf79616e1b0c42912d5705b642818b4f9 100644
--- a/cmd/ethereum/cmd.go
+++ b/cmd/ethereum/cmd.go
@@ -38,11 +38,11 @@ func InitJsConsole(ethereum *eth.Ethereum) {
 func ExecJsFile(ethereum *eth.Ethereum, InputFile string) {
 	file, err := os.Open(InputFile)
 	if err != nil {
-		logger.Fatalln(err)
+		clilogger.Fatalln(err)
 	}
 	content, err := ioutil.ReadAll(file)
 	if err != nil {
-		logger.Fatalln(err)
+		clilogger.Fatalln(err)
 	}
 	re := javascript.NewJSRE(ethereum)
 	utils.RegisterInterrupt(func(os.Signal) {
diff --git a/cmd/ethereum/flags.go b/cmd/ethereum/flags.go
index 892ea00366077caef53410d53b98e791b01553b2..783944cf25d381a185069ff1c08ef8c3d6a389ac 100644
--- a/cmd/ethereum/flags.go
+++ b/cmd/ethereum/flags.go
@@ -25,7 +25,7 @@ import (
 	"os/user"
 	"path"
 
-	"github.com/ethereum/go-ethereum/ethlog"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/vm"
 )
 
@@ -98,7 +98,7 @@ func Init() {
 	flag.StringVar(&Datadir, "datadir", defaultDataDir(), "specifies the datadir to use")
 	flag.StringVar(&ConfigFile, "conf", defaultConfigFile, "config file")
 	flag.StringVar(&DebugFile, "debug", "", "debug file (no debugging if not set)")
-	flag.IntVar(&LogLevel, "loglevel", int(ethlog.InfoLevel), "loglevel: 0-5: silent,error,warn,info,debug,debug detail)")
+	flag.IntVar(&LogLevel, "loglevel", int(logger.InfoLevel), "loglevel: 0-5: silent,error,warn,info,debug,debug detail)")
 	flag.BoolVar(&DiffTool, "difftool", false, "creates output for diff'ing. Sets LogLevel=0")
 	flag.StringVar(&DiffType, "diff", "all", "sets the level of diff output [vm, all]. Has no effect if difftool=false")
 	flag.BoolVar(&ShowGenesis, "genesis", false, "Dump the genesis block")
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index 71b9b72f1fa9407b0594ec620a8d4e50a2cb1eb0..fa85865fc1ac2bca3c775d22b904a385934f0a61 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -23,9 +23,10 @@ import (
 	"runtime"
 
 	"github.com/ethereum/go-ethereum/chain"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/utils"
+	"github.com/ethgo.old/ethlog"
 )
 
 const (
@@ -33,7 +34,7 @@ const (
 	Version          = "0.7.0"
 )
 
-var logger = ethlog.NewLogger("CLI")
+var clilogger = logger.NewLogger("CLI")
 
 func main() {
 	runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/cmd/ethereum/repl/repl.go b/cmd/ethereum/repl/repl.go
index 101bb058b6c9d2cdc76f2ca074252dca32f75dc7..a5146fecdc8acf5fbca2988d346e7934b19839a9 100644
--- a/cmd/ethereum/repl/repl.go
+++ b/cmd/ethereum/repl/repl.go
@@ -25,12 +25,12 @@ import (
 	"path"
 
 	"github.com/ethereum/go-ethereum"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/javascript"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var logger = ethlog.NewLogger("REPL")
+var repllogger = logger.NewLogger("REPL")
 
 type Repl interface {
 	Start()
@@ -59,7 +59,7 @@ func NewJSRepl(ethereum *eth.Ethereum) *JSRepl {
 func (self *JSRepl) Start() {
 	if !self.running {
 		self.running = true
-		logger.Infoln("init JS Console")
+		repllogger.Infoln("init JS Console")
 		reader := bufio.NewReader(self.history)
 		for {
 			line, err := reader.ReadString('\n')
@@ -80,7 +80,7 @@ func (self *JSRepl) Stop() {
 	if self.running {
 		self.running = false
 		self.re.Stop()
-		logger.Infoln("exit JS Console")
+		repllogger.Infoln("exit JS Console")
 		self.history.Close()
 	}
 }
diff --git a/cmd/mist/bindings.go b/cmd/mist/bindings.go
index 03d35a574b96a709cf49525e89361a262ff8cc85..8b038587b237a10cae2e5bfd3186dbda25394b17 100644
--- a/cmd/mist/bindings.go
+++ b/cmd/mist/bindings.go
@@ -23,9 +23,9 @@ import (
 	"strconv"
 
 	"github.com/ethereum/go-ethereum/chain"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethpipe"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/utils"
 )
 
@@ -35,7 +35,7 @@ type plugin struct {
 }
 
 // LogPrint writes to the GUI log.
-func (gui *Gui) LogPrint(level ethlog.LogLevel, msg string) {
+func (gui *Gui) LogPrint(level logger.LogLevel, msg string) {
 	/*
 		str := strings.TrimRight(s, "\n")
 		lines := strings.Split(str, "\n")
@@ -74,14 +74,14 @@ func (gui *Gui) ToggleTurboMining() {
 	gui.miner.ToggleTurbo()
 }
 
-// functions that allow Gui to implement interface ethlog.LogSystem
-func (gui *Gui) SetLogLevel(level ethlog.LogLevel) {
+// functions that allow Gui to implement interface guilogger.LogSystem
+func (gui *Gui) SetLogLevel(level logger.LogLevel) {
 	gui.logLevel = level
 	gui.stdLog.SetLogLevel(level)
 	gui.config.Save("loglevel", level)
 }
 
-func (gui *Gui) GetLogLevel() ethlog.LogLevel {
+func (gui *Gui) GetLogLevel() logger.LogLevel {
 	return gui.logLevel
 }
 
@@ -119,7 +119,7 @@ func (self *Gui) DumpState(hash, path string) {
 		}
 
 		if block == nil {
-			logger.Infof("block err: not found %s\n", hash)
+			guilogger.Infof("block err: not found %s\n", hash)
 			return
 		}
 
@@ -128,12 +128,12 @@ func (self *Gui) DumpState(hash, path string) {
 
 	file, err := os.OpenFile(path[7:], os.O_CREATE|os.O_RDWR, os.ModePerm)
 	if err != nil {
-		logger.Infoln("dump err: ", err)
+		guilogger.Infoln("dump err: ", err)
 		return
 	}
 	defer file.Close()
 
-	logger.Infof("dumped state (%s) to %s\n", hash, path)
+	guilogger.Infof("dumped state (%s) to %s\n", hash, path)
 
 	file.Write(stateDump)
 }
diff --git a/cmd/mist/ext_app.go b/cmd/mist/ext_app.go
index cb014aec41d244e953912500e6637d82d426b896..8af9778bc9f30b798c0e466ca7c5e18de51328f5 100644
--- a/cmd/mist/ext_app.go
+++ b/cmd/mist/ext_app.go
@@ -74,7 +74,7 @@ func (app *ExtApplication) run() {
 
 	err := app.container.Create()
 	if err != nil {
-		logger.Errorln(err)
+		guilogger.Errorln(err)
 		return
 	}
 
diff --git a/cmd/mist/flags.go b/cmd/mist/flags.go
index 3aa2e21c809655e596103fd05db55d1cbdb1b05f..7de2a881dc4ad792c0a9f613f1a10663a913ac87 100644
--- a/cmd/mist/flags.go
+++ b/cmd/mist/flags.go
@@ -28,7 +28,6 @@ import (
 	"runtime"
 
 	"bitbucket.org/kardianos/osext"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/vm"
 )
 
@@ -117,7 +116,7 @@ func Init() {
 	flag.StringVar(&Datadir, "datadir", defaultDataDir(), "specifies the datadir to use")
 	flag.StringVar(&ConfigFile, "conf", defaultConfigFile, "config file")
 	flag.StringVar(&DebugFile, "debug", "", "debug file (no debugging if not set)")
-	flag.IntVar(&LogLevel, "loglevel", int(ethlog.InfoLevel), "loglevel: 0-5: silent,error,warn,info,debug,debug detail)")
+	flag.IntVar(&LogLevel, "loglevel", int(repllogger.InfoLevel), "loglevel: 0-5: silent,error,warn,info,debug,debug detail)")
 
 	flag.StringVar(&AssetPath, "asset_path", defaultAssetPath(), "absolute path to GUI assets directory")
 
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index c917ad06e9d9e99650faf1642a93be610064a953..4ae92a34095f9f4131acd3ce3aadf351cf43cb2f 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -33,11 +33,11 @@ import (
 	"github.com/ethereum/go-ethereum"
 	"github.com/ethereum/go-ethereum/chain"
 	"github.com/ethereum/go-ethereum/ethdb"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethminer"
 	"github.com/ethereum/go-ethereum/ethpipe"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/ethwire"
+	"github.com/ethereum/go-ethereum/logger"
 	"gopkg.in/qml.v1"
 )
 
@@ -64,7 +64,7 @@ func LoadExtension(path string) (uintptr, error) {
 }
 */
 
-var logger = ethlog.NewLogger("GUI")
+var guilogger = logger.NewLogger("GUI")
 
 type Gui struct {
 	// The main application window
@@ -81,7 +81,7 @@ type Gui struct {
 
 	txDb *ethdb.LDBDatabase
 
-	logLevel ethlog.LogLevel
+	logLevel logger.LogLevel
 	open     bool
 
 	pipe *ethpipe.JSPipe
@@ -93,7 +93,7 @@ type Gui struct {
 	plugins map[string]plugin
 
 	miner  *ethminer.Miner
-	stdLog ethlog.LogSystem
+	stdLog logger.LogSystem
 }
 
 // Create GUI, but doesn't start it
@@ -104,7 +104,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIden
 	}
 
 	pipe := ethpipe.NewJSPipe(ethereum)
-	gui := &Gui{eth: ethereum, txDb: db, pipe: pipe, logLevel: ethlog.LogLevel(logLevel), Session: session, open: false, clientIdentity: clientIdentity, config: config, plugins: make(map[string]plugin)}
+	gui := &Gui{eth: ethereum, txDb: db, pipe: pipe, logLevel: logger.LogLevel(logLevel), Session: session, open: false, clientIdentity: clientIdentity, config: config, plugins: make(map[string]plugin)}
 	data, _ := ethutil.ReadAllFile(path.Join(ethutil.Config.ExecPath, "plugins.json"))
 	json.Unmarshal([]byte(data), &gui.plugins)
 
@@ -155,36 +155,36 @@ func (gui *Gui) Start(assetPath string) {
 		addlog = true
 	}
 	if err != nil {
-		logger.Errorln("asset not found: you can set an alternative asset path on the command line using option 'asset_path'", err)
+		guilogger.Errorln("asset not found: you can set an alternative asset path on the command line using option 'asset_path'", err)
 
 		panic(err)
 	}
 
-	logger.Infoln("Starting GUI")
+	guilogger.Infoln("Starting GUI")
 	gui.open = true
 	win.Show()
 
-	// only add the gui logger after window is shown otherwise slider wont be shown
+	// only add the gui guilogger after window is shown otherwise slider wont be shown
 	if addlog {
-		ethlog.AddLogSystem(gui)
+		logger.AddLogSystem(gui)
 	}
 	win.Wait()
 
-	// need to silence gui logger after window closed otherwise logsystem hangs (but do not save loglevel)
-	gui.logLevel = ethlog.Silence
+	// need to silence gui guilogger after window closed otherwise logsystem hangs (but do not save loglevel)
+	gui.logLevel = logger.Silence
 	gui.open = false
 }
 
 func (gui *Gui) Stop() {
 	if gui.open {
-		gui.logLevel = ethlog.Silence
+		gui.logLevel = logger.Silence
 		gui.open = false
 		gui.win.Hide()
 	}
 
 	gui.uiLib.jsEngine.Stop()
 
-	logger.Infoln("Stopped")
+	guilogger.Infoln("Stopped")
 }
 
 func (gui *Gui) showWallet(context *qml.Context) (*qml.Window, error) {
@@ -229,17 +229,17 @@ func (gui *Gui) createWindow(comp qml.Object) *qml.Window {
 func (gui *Gui) ImportAndSetPrivKey(secret string) bool {
 	err := gui.eth.KeyManager().InitFromString(gui.Session, 0, secret)
 	if err != nil {
-		logger.Errorln("unable to import: ", err)
+		guilogger.Errorln("unable to import: ", err)
 		return false
 	}
-	logger.Errorln("successfully imported: ", err)
+	guilogger.Errorln("successfully imported: ", err)
 	return true
 }
 
 func (gui *Gui) CreateAndSetPrivKey() (string, string, string, string) {
 	err := gui.eth.KeyManager().Init(gui.Session, 0, true)
 	if err != nil {
-		logger.Errorln("unable to create key: ", err)
+		guilogger.Errorln("unable to create key: ", err)
 		return "", "", "", ""
 	}
 	return gui.eth.KeyManager().KeyPair().AsStrings()
@@ -387,7 +387,7 @@ func (gui *Gui) update() {
 	}()
 
 	for _, plugin := range gui.plugins {
-		logger.Infoln("Loading plugin ", plugin.Name)
+		guilogger.Infoln("Loading plugin ", plugin.Name)
 
 		gui.win.Root().Call("addPlugin", plugin.Path, "")
 	}
diff --git a/cmd/mist/html_container.go b/cmd/mist/html_container.go
index 96bae1a9af9b0e7071bc46393d8dc2043c6d1b7e..755d5ea6e1ff622b324bd1ec2d6bf2cb47c23b01 100644
--- a/cmd/mist/html_container.go
+++ b/cmd/mist/html_container.go
@@ -98,12 +98,12 @@ func (app *HtmlApplication) NewWatcher(quitChan chan bool) {
 
 	app.watcher, err = fsnotify.NewWatcher()
 	if err != nil {
-		logger.Infoln("Could not create new auto-reload watcher:", err)
+		guilogger.Infoln("Could not create new auto-reload watcher:", err)
 		return
 	}
 	err = app.watcher.Watch(app.RootFolder())
 	if err != nil {
-		logger.Infoln("Could not start auto-reload watcher:", err)
+		guilogger.Infoln("Could not start auto-reload watcher:", err)
 		return
 	}
 	for _, folder := range app.RecursiveFolders() {
@@ -119,11 +119,11 @@ func (app *HtmlApplication) NewWatcher(quitChan chan bool) {
 				app.watcher.Close()
 				break out
 			case <-app.watcher.Event:
-				//logger.Debugln("Got event:", ev)
+				//guilogger.Debugln("Got event:", ev)
 				app.webView.Call("reload")
 			case err := <-app.watcher.Error:
 				// TODO: Do something here
-				logger.Infoln("Watcher error:", err)
+				guilogger.Infoln("Watcher error:", err)
 			}
 		}
 	}()
diff --git a/cmd/mist/main.go b/cmd/mist/main.go
index e739bbff5a99b0b44aacf4c9dc0aeb2aae06d07f..b7282d9b5211cc588537faab8f58bac53717d687 100644
--- a/cmd/mist/main.go
+++ b/cmd/mist/main.go
@@ -22,7 +22,7 @@ import (
 	"runtime"
 
 	"github.com/ethereum/go-ethereum"
-	"github.com/ethereum/go-ethereum/ethlog"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/utils"
 	"gopkg.in/qml.v1"
 )
@@ -108,5 +108,5 @@ func main() {
 	}
 	// this blocks the thread
 	ethereum.WaitForShutdown()
-	ethlog.Flush()
+	logger.Flush()
 }
diff --git a/cmd/mist/qml_container.go b/cmd/mist/qml_container.go
index 3318786e799dffd08027ff5a56a9e5f0a729cc2a..13a50d9889a08a15b01d5267e6bd67ebfec8e570 100644
--- a/cmd/mist/qml_container.go
+++ b/cmd/mist/qml_container.go
@@ -50,7 +50,7 @@ func (app *QmlApplication) Create() error {
 
 	component, err := app.engine.LoadFile(path)
 	if err != nil {
-		logger.Warnln(err)
+		guilogger.Warnln(err)
 	}
 	app.win = component.CreateWindow(nil)
 
diff --git a/cmd/mist/ui_lib.go b/cmd/mist/ui_lib.go
index b12fab603c99f7a127b341b31c7b3db53bf7b92d..6fffa845fc4d2237165c863fbbfda9e4e11e198e 100644
--- a/cmd/mist/ui_lib.go
+++ b/cmd/mist/ui_lib.go
@@ -62,7 +62,7 @@ func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath string) *UiLib {
 }
 
 func (self *UiLib) Notef(args []interface{}) {
-	logger.Infoln(args...)
+	guilogger.Infoln(args...)
 }
 
 func (self *UiLib) LookupDomain(domain string) string {
@@ -158,7 +158,7 @@ func (ui *UiLib) OpenBrowser() {
 func (ui *UiLib) Muted(content string) {
 	component, err := ui.engine.LoadFile(ui.AssetPath("qml/muted.qml"))
 	if err != nil {
-		logger.Debugln(err)
+		guilogger.Debugln(err)
 
 		return
 	}
diff --git a/ethereum.go b/ethereum.go
index 4f2ca85e8593ab679e15cc1d3ef6564309fbca3a..9b456ad7c1fa6247726975a030071a331fad9052 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -16,11 +16,11 @@ import (
 
 	"github.com/ethereum/go-ethereum/chain"
 	"github.com/ethereum/go-ethereum/crypto"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethstate"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/ethwire"
 	"github.com/ethereum/go-ethereum/event"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/rpc"
 )
 
@@ -29,7 +29,7 @@ const (
 	seedNodeAddress        = "poc-7.ethdev.com:30303"
 )
 
-var ethlogger = ethlog.NewLogger("SERV")
+var loggerger = logger.NewLogger("SERV")
 
 func eachPeer(peers *list.List, callback func(*Peer, *list.Element)) {
 	// Loop thru the peers and close them (if we had them)
@@ -104,7 +104,7 @@ func New(db ethutil.Database, clientIdentity ethwire.ClientIdentity, keyManager
 	if usePnp {
 		nat, err = Discover()
 		if err != nil {
-			ethlogger.Debugln("UPnP failed", err)
+			loggerger.Debugln("UPnP failed", err)
 		}
 	}
 
@@ -217,7 +217,7 @@ func (s *Ethereum) AddPeer(conn net.Conn) {
 		if s.peers.Len() < s.MaxPeers {
 			peer.Start()
 		} else {
-			ethlogger.Debugf("Max connected peers reached. Not adding incoming peer.")
+			loggerger.Debugf("Max connected peers reached. Not adding incoming peer.")
 		}
 	}
 }
@@ -277,7 +277,7 @@ func (s *Ethereum) ConnectToPeer(addr string) error {
 
 			if phost == chost {
 				alreadyConnected = true
-				//ethlogger.Debugf("Peer %s already added.\n", chost)
+				//loggerger.Debugf("Peer %s already added.\n", chost)
 				return
 			}
 		})
@@ -397,12 +397,12 @@ func (s *Ethereum) Start(seed bool) {
 	// Bind to addr and port
 	ln, err := net.Listen("tcp", ":"+s.Port)
 	if err != nil {
-		ethlogger.Warnf("Port %s in use. Connection listening disabled. Acting as client", s.Port)
+		loggerger.Warnf("Port %s in use. Connection listening disabled. Acting as client", s.Port)
 		s.listening = false
 	} else {
 		s.listening = true
 		// Starting accepting connections
-		ethlogger.Infoln("Ready and accepting connections")
+		loggerger.Infoln("Ready and accepting connections")
 		// Start the peer handler
 		go s.peerHandler(ln)
 	}
@@ -419,7 +419,7 @@ func (s *Ethereum) Start(seed bool) {
 	if seed {
 		s.Seed()
 	}
-	ethlogger.Infoln("Server started")
+	loggerger.Infoln("Server started")
 }
 
 func (s *Ethereum) Seed() {
@@ -428,11 +428,11 @@ func (s *Ethereum) Seed() {
 	ips := PastPeers()
 	if len(ips) > 0 {
 		for _, ip := range ips {
-			ethlogger.Infoln("Connecting to previous peer ", ip)
+			loggerger.Infoln("Connecting to previous peer ", ip)
 			s.ConnectToPeer(ip)
 		}
 	} else {
-		ethlogger.Debugln("Retrieving seed nodes")
+		loggerger.Debugln("Retrieving seed nodes")
 
 		// Eth-Go Bootstrapping
 		ips, er := net.LookupIP("seed.bysh.me")
@@ -440,7 +440,7 @@ func (s *Ethereum) Seed() {
 			peers := []string{}
 			for _, ip := range ips {
 				node := fmt.Sprintf("%s:%d", ip.String(), 30303)
-				ethlogger.Debugln("Found DNS Go Peer:", node)
+				loggerger.Debugln("Found DNS Go Peer:", node)
 				peers = append(peers, node)
 			}
 			s.ProcessPeerList(peers)
@@ -460,11 +460,11 @@ func (s *Ethereum) Seed() {
 					for _, a := range addr {
 						// Build string out of SRV port and Resolved IP
 						peer := net.JoinHostPort(a, port)
-						ethlogger.Debugln("Found DNS Bootstrap Peer:", peer)
+						loggerger.Debugln("Found DNS Bootstrap Peer:", peer)
 						peers = append(peers, peer)
 					}
 				} else {
-					ethlogger.Debugln("Couldn't resolve :", target)
+					loggerger.Debugln("Couldn't resolve :", target)
 				}
 			}
 			// Connect to Peer list
@@ -480,7 +480,7 @@ func (s *Ethereum) peerHandler(listener net.Listener) {
 	for {
 		conn, err := listener.Accept()
 		if err != nil {
-			ethlogger.Debugln(err)
+			loggerger.Debugln(err)
 
 			continue
 		}
@@ -519,7 +519,7 @@ func (s *Ethereum) Stop() {
 	s.stateManager.Stop()
 	s.blockPool.Stop()
 
-	ethlogger.Infoln("Server stopped")
+	loggerger.Infoln("Server stopped")
 	close(s.shutdownChan)
 }
 
@@ -541,13 +541,13 @@ out:
 			var err error
 			_, err = s.nat.AddPortMapping("TCP", int(lport), int(lport), "eth listen port", 20*60)
 			if err != nil {
-				ethlogger.Debugln("can't add UPnP port mapping:", err)
+				loggerger.Debugln("can't add UPnP port mapping:", err)
 				break out
 			}
 			if first && err == nil {
 				_, err = s.nat.GetExternalAddress()
 				if err != nil {
-					ethlogger.Debugln("UPnP can't get external address:", err)
+					loggerger.Debugln("UPnP can't get external address:", err)
 					continue out
 				}
 				first = false
@@ -561,9 +561,9 @@ out:
 	timer.Stop()
 
 	if err := s.nat.DeletePortMapping("TCP", int(lport), int(lport)); err != nil {
-		ethlogger.Debugln("unable to remove UPnP port mapping:", err)
+		loggerger.Debugln("unable to remove UPnP port mapping:", err)
 	} else {
-		ethlogger.Debugln("succesfully disestablished UPnP port mapping")
+		loggerger.Debugln("succesfully disestablished UPnP port mapping")
 	}
 }
 
diff --git a/ethminer/miner.go b/ethminer/miner.go
index c2e973f321511c9eb874ceaf257112e766041526..42c989eeea2ea13ab02a52f0e165fde0a26418d3 100644
--- a/ethminer/miner.go
+++ b/ethminer/miner.go
@@ -5,12 +5,12 @@ import (
 	"sort"
 
 	"github.com/ethereum/go-ethereum/chain"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethwire"
 	"github.com/ethereum/go-ethereum/event"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var logger = ethlog.NewLogger("MINER")
+var minerlogger = logger.NewLogger("MINER")
 
 type Miner struct {
 	pow      chain.PoW
@@ -70,12 +70,12 @@ func (miner *Miner) Start() {
 	//miner.ethereum.StateManager().Prepare(miner.block.State(), miner.block.State())
 	go miner.listener()
 
-	logger.Infoln("Started")
+	minerlogger.Infoln("Started")
 	mux.Post(Event{Started, miner})
 }
 
 func (miner *Miner) Stop() {
-	logger.Infoln("Stopping...")
+	minerlogger.Infoln("Stopping...")
 	miner.events.Unsubscribe()
 	miner.ethereum.EventMux().Post(Event{Stopped, miner})
 }
@@ -91,10 +91,10 @@ func (miner *Miner) listener() {
 				miner.stopMining()
 
 				block := event.Block
-				//logger.Infoln("Got new block via Reactor")
+				//minerlogger.Infoln("Got new block via Reactor")
 				if bytes.Compare(miner.ethereum.ChainManager().CurrentBlock.Hash(), block.Hash()) == 0 {
 					// TODO: Perhaps continue mining to get some uncle rewards
-					//logger.Infoln("New top block found resetting state")
+					//minerlogger.Infoln("New top block found resetting state")
 
 					// Filter out which Transactions we have that were not in this block
 					var newtxs []*chain.Transaction
@@ -112,7 +112,7 @@ func (miner *Miner) listener() {
 					miner.txs = newtxs
 				} else {
 					if bytes.Compare(block.PrevHash, miner.ethereum.ChainManager().CurrentBlock.PrevHash) == 0 {
-						logger.Infoln("Adding uncle block")
+						minerlogger.Infoln("Adding uncle block")
 						miner.uncles = append(miner.uncles, block)
 					}
 				}
@@ -180,7 +180,7 @@ func (self *Miner) mineNewBlock() {
 	coinbase.SetGasPool(self.block.CalcGasLimit(parent))
 	receipts, txs, unhandledTxs, erroneous, err := stateManager.ProcessTransactions(coinbase, self.block.State(), self.block, self.block, self.txs)
 	if err != nil {
-		logger.Debugln(err)
+		minerlogger.Debugln(err)
 	}
 	self.ethereum.TxPool().RemoveSet(erroneous)
 	self.txs = append(txs, unhandledTxs...)
@@ -193,7 +193,7 @@ func (self *Miner) mineNewBlock() {
 
 	self.block.State().Update()
 
-	logger.Infof("Mining on block. Includes %v transactions", len(self.txs))
+	minerlogger.Infof("Mining on block. Includes %v transactions", len(self.txs))
 
 	// Find a valid nonce
 	nonce := self.pow.Search(self.block, self.powQuitChan)
@@ -201,11 +201,11 @@ func (self *Miner) mineNewBlock() {
 		self.block.Nonce = nonce
 		err := self.ethereum.StateManager().Process(self.block)
 		if err != nil {
-			logger.Infoln(err)
+			minerlogger.Infoln(err)
 		} else {
 			self.ethereum.Broadcast(ethwire.MsgBlockTy, []interface{}{self.block.Value().Val})
-			logger.Infof("🔨  Mined block %x\n", self.block.Hash())
-			logger.Infoln(self.block)
+			minerlogger.Infof("🔨  Mined block %x\n", self.block.Hash())
+			minerlogger.Infoln(self.block)
 			// Gather the new batch of transactions currently in the tx pool
 			self.txs = self.ethereum.TxPool().CurrentTransactions()
 			self.ethereum.EventMux().Post(chain.NewBlockEvent{self.block})
diff --git a/ethpipe/js_pipe.go b/ethpipe/js_pipe.go
index deb3cf091d8555a51ef3f95e8cecf4d674576c6f..eb365f007ef581a3fbda5acfb723a1d5f126891e 100644
--- a/ethpipe/js_pipe.go
+++ b/ethpipe/js_pipe.go
@@ -233,7 +233,7 @@ func (self *JSPipe) Transact(key, toStr, valueStr, gasStr, gasPriceStr, codeStr
 	self.obj.TxPool().QueueTransaction(tx)
 
 	if contractCreation {
-		logger.Infof("Contract addr %x", tx.CreationAddress(self.World().State()))
+		pipelogger.Infof("Contract addr %x", tx.CreationAddress(self.World().State()))
 	}
 
 	return NewJSReciept(contractCreation, tx.CreationAddress(self.World().State()), tx.Hash(), keyPair.Address()), nil
diff --git a/ethpipe/pipe.go b/ethpipe/pipe.go
index 7663a198479e32d099e5f855544adb67dfb509af..f6fee3923340fd5396734c5fb0c6cf97f3b07037 100644
--- a/ethpipe/pipe.go
+++ b/ethpipe/pipe.go
@@ -6,13 +6,13 @@ import (
 
 	"github.com/ethereum/go-ethereum/chain"
 	"github.com/ethereum/go-ethereum/crypto"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethstate"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/vm"
 )
 
-var logger = ethlog.NewLogger("PIPE")
+var pipelogger = logger.NewLogger("PIPE")
 
 type VmVars struct {
 	State *ethstate.State
@@ -143,7 +143,7 @@ func (self *Pipe) Transact(key *crypto.KeyPair, rec []byte, value, gas, price *e
 
 	if contractCreation {
 		addr := tx.CreationAddress(self.World().State())
-		logger.Infof("Contract addr %x\n", addr)
+		pipelogger.Infof("Contract addr %x\n", addr)
 
 		return addr, nil
 	}
@@ -155,7 +155,7 @@ func (self *Pipe) PushTx(tx *chain.Transaction) ([]byte, error) {
 	self.obj.TxPool().QueueTransaction(tx)
 	if tx.Recipient == nil {
 		addr := tx.CreationAddress(self.World().State())
-		logger.Infof("Contract addr %x\n", addr)
+		pipelogger.Infof("Contract addr %x\n", addr)
 		return addr, nil
 	}
 	return tx.Hash(), nil
diff --git a/ethstate/state.go b/ethstate/state.go
index 48efeae467bb18e86e942a386bcab439e9716212..9025194e5cf27679fc08576be5c77c175b4e989b 100644
--- a/ethstate/state.go
+++ b/ethstate/state.go
@@ -3,12 +3,12 @@ package ethstate
 import (
 	"math/big"
 
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethtrie"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var statelogger = ethlog.NewLogger("STATE")
+var statelogger = logger.NewLogger("STATE")
 
 // States within the ethereum protocol are used to store anything
 // within the merkle trie. States take care of caching and storing
diff --git a/javascript/javascript_runtime.go b/javascript/javascript_runtime.go
index 36850021d327bbc1be0314c5db30f1211759daa3..c539c434845a605a7ace3ca2140eb849e1ed6822 100644
--- a/javascript/javascript_runtime.go
+++ b/javascript/javascript_runtime.go
@@ -9,16 +9,16 @@ import (
 
 	"github.com/ethereum/go-ethereum"
 	"github.com/ethereum/go-ethereum/chain"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethpipe"
 	"github.com/ethereum/go-ethereum/ethstate"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/event"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/utils"
 	"github.com/obscuren/otto"
 )
 
-var jsrelogger = ethlog.NewLogger("JSRE")
+var jsrelogger = logger.NewLogger("JSRE")
 
 type JSRE struct {
 	ethereum *eth.Ethereum
diff --git a/ethlog/example_test.go b/logger/example_test.go
similarity index 97%
rename from ethlog/example_test.go
rename to logger/example_test.go
index 2532f36c134ee99310cb4aafc1f5891b0fc832b5..c624252b8e40d89b5ed39e6e4c80ce500efe0264 100644
--- a/ethlog/example_test.go
+++ b/logger/example_test.go
@@ -1,4 +1,4 @@
-package ethlog
+package logger
 
 import "os"
 
diff --git a/ethlog/loggers.go b/logger/loggers.go
similarity index 98%
rename from ethlog/loggers.go
rename to logger/loggers.go
index 986bb17597aeda6c9b834c84615a4d81d6a2434d..1bf7bfa0e18a97ba5440acab0af4e655164a3881 100644
--- a/ethlog/loggers.go
+++ b/logger/loggers.go
@@ -1,5 +1,5 @@
 /*
-Package ethlog implements a multi-output leveled logger.
+Package logger implements a multi-output leveled logger.
 
 Other packages use tagged logger to send log messages to shared
 (process-wide) logging engine. The shared logging engine dispatches to
@@ -10,7 +10,7 @@ Logging is asynchronous and does not block the caller. Message
 formatting is performed by the caller goroutine to avoid incorrect
 logging of mutable state.
 */
-package ethlog
+package logger
 
 import (
 	"fmt"
diff --git a/ethlog/loggers_test.go b/logger/loggers_test.go
similarity index 99%
rename from ethlog/loggers_test.go
rename to logger/loggers_test.go
index cf92e3cc66def0c898d42e1022ccaf4601ffeedc..adc4df01634741ae40024291bb9d51ab51edbca9 100644
--- a/ethlog/loggers_test.go
+++ b/logger/loggers_test.go
@@ -1,4 +1,4 @@
-package ethlog
+package logger
 
 import (
 	"io/ioutil"
diff --git a/peer.go b/peer.go
index ab25e57091646aaae305c6a17c70a34a2c8d127e..36db6802302ad822a6284fb77d68be56bf747612 100644
--- a/peer.go
+++ b/peer.go
@@ -13,12 +13,12 @@ import (
 	"time"
 
 	"github.com/ethereum/go-ethereum/chain"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/ethwire"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var peerlogger = ethlog.NewLogger("PEER")
+var peerlogger = logger.NewLogger("PEER")
 
 const (
 	// The size of the output buffer for writing messages
@@ -696,18 +696,18 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) {
 	)
 
 	if bytes.Compare(self.ethereum.ChainManager().Genesis().Hash(), genesis) != 0 {
-		ethlogger.Warnf("Invalid genisis hash %x. Disabling [eth]\n", genesis)
+		loggerger.Warnf("Invalid genisis hash %x. Disabling [eth]\n", genesis)
 		return
 	}
 
 	if netVersion != NetVersion {
-		ethlogger.Warnf("Invalid network version %d. Disabling [eth]\n", netVersion)
+		loggerger.Warnf("Invalid network version %d. Disabling [eth]\n", netVersion)
 		return
 	}
 
 	/*
 		if protoVersion != ProtocolVersion {
-			ethlogger.Warnf("Invalid protocol version %d. Disabling [eth]\n", protoVersion)
+			loggerger.Warnf("Invalid protocol version %d. Disabling [eth]\n", protoVersion)
 			return
 		}
 	*/
@@ -723,7 +723,7 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) {
 	// fetch hashes from highest TD node.
 	self.FetchHashes()
 
-	ethlogger.Infof("Peer is [eth] capable. (TD = %v ~ %x)", self.td, self.bestHash)
+	loggerger.Infof("Peer is [eth] capable. (TD = %v ~ %x)", self.td, self.bestHash)
 
 }
 
@@ -819,7 +819,7 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
 		switch cap {
 		case "eth":
 			if ver != ProtocolVersion {
-				ethlogger.Warnf("Invalid protocol version %d. Disabling [eth]\n", ver)
+				loggerger.Warnf("Invalid protocol version %d. Disabling [eth]\n", ver)
 				continue
 			}
 			p.pushStatus()
@@ -828,7 +828,7 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
 		capsStrs = append(capsStrs, cap)
 	}
 
-	ethlogger.Infof("Added peer (%s) %d / %d (%v)\n", p.conn.RemoteAddr(), p.ethereum.Peers().Len(), p.ethereum.MaxPeers, capsStrs)
+	peerlogger.Infof("Added peer (%s) %d / %d (%v)\n", p.conn.RemoteAddr(), p.ethereum.Peers().Len(), p.ethereum.MaxPeers, capsStrs)
 
 	peerlogger.Debugln(p)
 }
diff --git a/rpc/packages.go b/rpc/packages.go
index 07d3ddc9a2f43725b0c63af94504f78f8c990372..31500867c1059b876f35d1de5227f8624840edba 100644
--- a/rpc/packages.go
+++ b/rpc/packages.go
@@ -208,7 +208,7 @@ func (p *EthereumApi) GetStorageAt(args *GetStorageArgs, reply *string) error {
 		i, _ := new(big.Int).SetString(args.Key, 10)
 		hx = ethutil.Bytes2Hex(i.Bytes())
 	}
-	logger.Debugf("GetStorageAt(%s, %s)\n", args.Address, hx)
+	jsonlogger.Debugf("GetStorageAt(%s, %s)\n", args.Address, hx)
 	value := state.Storage(ethutil.Hex2Bytes(hx))
 	*reply = NewSuccessRes(GetStorageAtRes{Address: args.Address, Key: args.Key, Value: value.Str()})
 	return nil
diff --git a/rpc/server.go b/rpc/server.go
index ce53266f0594aed3098534e531dffde318eca24d..20f75ce67f5ecdede6fb0cb5fdd4849b2036d5cc 100644
--- a/rpc/server.go
+++ b/rpc/server.go
@@ -6,11 +6,11 @@ import (
 	"net/rpc"
 	"net/rpc/jsonrpc"
 
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethpipe"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var logger = ethlog.NewLogger("JSON")
+var jsonlogger = logger.NewLogger("JSON")
 
 type JsonRpcServer struct {
 	quit     chan bool
@@ -28,7 +28,7 @@ out:
 		}
 	}
 
-	logger.Infoln("Shutdown JSON-RPC server")
+	jsonlogger.Infoln("Shutdown JSON-RPC server")
 }
 
 func (s *JsonRpcServer) Stop() {
@@ -36,7 +36,7 @@ func (s *JsonRpcServer) Stop() {
 }
 
 func (s *JsonRpcServer) Start() {
-	logger.Infoln("Starting JSON-RPC server")
+	jsonlogger.Infoln("Starting JSON-RPC server")
 	go s.exitHandler()
 	rpc.Register(&EthereumApi{pipe: s.pipe})
 	rpc.HandleHTTP()
@@ -44,10 +44,10 @@ func (s *JsonRpcServer) Start() {
 	for {
 		conn, err := s.listener.Accept()
 		if err != nil {
-			logger.Infoln("Error starting JSON-RPC:", err)
+			jsonlogger.Infoln("Error starting JSON-RPC:", err)
 			break
 		}
-		logger.Debugln("Incoming request.")
+		jsonlogger.Debugln("Incoming request.")
 		go jsonrpc.ServeConn(conn)
 	}
 }
diff --git a/utils/cmd.go b/utils/cmd.go
index fd684640b56b030850ee29666d288e2eb3365dce..7ee41d0426081433e5703995ed2ed1f4cabb8194 100644
--- a/utils/cmd.go
+++ b/utils/cmd.go
@@ -16,15 +16,15 @@ import (
 	"github.com/ethereum/go-ethereum"
 	"github.com/ethereum/go-ethereum/crypto"
 	"github.com/ethereum/go-ethereum/ethdb"
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethminer"
 	"github.com/ethereum/go-ethereum/ethpipe"
 	"github.com/ethereum/go-ethereum/ethutil"
 	"github.com/ethereum/go-ethereum/ethwire"
+	"github.com/ethereum/go-ethereum/logger"
 	"github.com/ethereum/go-ethereum/rpc"
 )
 
-var logger = ethlog.NewLogger("CLI")
+var clilogger = logger.NewLogger("CLI")
 var interruptCallbacks = []func(os.Signal){}
 
 // Register interrupt handlers callbacks
@@ -38,7 +38,7 @@ func HandleInterrupt() {
 	go func() {
 		signal.Notify(c, os.Interrupt)
 		for sig := range c {
-			logger.Errorf("Shutting down (%v) ... \n", sig)
+			clilogger.Errorf("Shutting down (%v) ... \n", sig)
 			RunInterruptCallbacks(sig)
 		}
 	}()
@@ -100,7 +100,7 @@ func InitDataDir(Datadir string) {
 	}
 }
 
-func InitLogging(Datadir string, LogFile string, LogLevel int, DebugFile string) ethlog.LogSystem {
+func InitLogging(Datadir string, LogFile string, LogLevel int, DebugFile string) logger.LogSystem {
 	var writer io.Writer
 	if LogFile == "" {
 		writer = os.Stdout
@@ -108,11 +108,11 @@ func InitLogging(Datadir string, LogFile string, LogLevel int, DebugFile string)
 		writer = openLogFile(Datadir, LogFile)
 	}
 
-	sys := ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.LogLevel(LogLevel))
-	ethlog.AddLogSystem(sys)
+	sys := logger.NewStdLogSystem(writer, log.LstdFlags, logger.LogLevel(LogLevel))
+	logger.AddLogSystem(sys)
 	if DebugFile != "" {
 		writer = openLogFile(Datadir, DebugFile)
-		ethlog.AddLogSystem(ethlog.NewStdLogSystem(writer, log.LstdFlags, ethlog.DebugLevel))
+		logger.AddLogSystem(logger.NewStdLogSystem(writer, log.LstdFlags, logger.DebugLevel))
 	}
 
 	return sys
@@ -129,10 +129,10 @@ func InitConfig(vmType int, ConfigFile string, Datadir string, EnvPrefix string)
 func exit(err error) {
 	status := 0
 	if err != nil {
-		logger.Errorln("Fatal: ", err)
+		clilogger.Errorln("Fatal: ", err)
 		status = 1
 	}
-	ethlog.Flush()
+	logger.Flush()
 	os.Exit(status)
 }
 
@@ -145,14 +145,14 @@ func NewDatabase() ethutil.Database {
 }
 
 func NewClientIdentity(clientIdentifier, version, customIdentifier string) *ethwire.SimpleClientIdentity {
-	logger.Infoln("identity created")
+	clilogger.Infoln("identity created")
 	return ethwire.NewSimpleClientIdentity(clientIdentifier, version, customIdentifier)
 }
 
 func NewEthereum(db ethutil.Database, clientIdentity ethwire.ClientIdentity, keyManager *crypto.KeyManager, usePnp bool, OutboundPort string, MaxPeer int) *eth.Ethereum {
 	ethereum, err := eth.New(db, clientIdentity, keyManager, eth.CapDefault, usePnp)
 	if err != nil {
-		logger.Fatalln("eth start err:", err)
+		clilogger.Fatalln("eth start err:", err)
 	}
 	ethereum.Port = OutboundPort
 	ethereum.MaxPeers = MaxPeer
@@ -160,16 +160,16 @@ func NewEthereum(db ethutil.Database, clientIdentity ethwire.ClientIdentity, key
 }
 
 func StartEthereum(ethereum *eth.Ethereum, UseSeed bool) {
-	logger.Infof("Starting %s", ethereum.ClientIdentity())
+	clilogger.Infof("Starting %s", ethereum.ClientIdentity())
 	ethereum.Start(UseSeed)
 	RegisterInterrupt(func(sig os.Signal) {
 		ethereum.Stop()
-		ethlog.Flush()
+		logger.Flush()
 	})
 }
 
 func ShowGenesis(ethereum *eth.Ethereum) {
-	logger.Infoln(ethereum.ChainManager().Genesis())
+	clilogger.Infoln(ethereum.ChainManager().Genesis())
 	exit(nil)
 }
 
@@ -246,7 +246,7 @@ func StartRpc(ethereum *eth.Ethereum, RpcPort int) {
 	var err error
 	ethereum.RpcServer, err = rpc.NewJsonRpcServer(ethpipe.NewJSPipe(ethereum), RpcPort)
 	if err != nil {
-		logger.Errorf("Could not start RPC interface (port %v): %v", RpcPort, err)
+		clilogger.Errorf("Could not start RPC interface (port %v): %v", RpcPort, err)
 	} else {
 		go ethereum.RpcServer.Start()
 	}
@@ -264,7 +264,7 @@ func StartMining(ethereum *eth.Ethereum) bool {
 		addr := ethereum.KeyManager().Address()
 
 		go func() {
-			logger.Infoln("Start mining")
+			clilogger.Infoln("Start mining")
 			if miner == nil {
 				miner = ethminer.NewDefaultMiner(addr, ethereum)
 			}
@@ -299,7 +299,7 @@ func FormatTransactionData(data string) []byte {
 func StopMining(ethereum *eth.Ethereum) bool {
 	if ethereum.Mining && miner != nil {
 		miner.Stop()
-		logger.Infoln("Stopped mining")
+		clilogger.Infoln("Stopped mining")
 		ethereum.Mining = false
 
 		return true
diff --git a/vm/common.go b/vm/common.go
index 16a0b552347e1d9cd3f7f96dca1b16f739cd0110..9514ff6d307dc09d96a8846c57194b48eb9afbd6 100644
--- a/vm/common.go
+++ b/vm/common.go
@@ -3,11 +3,11 @@ package vm
 import (
 	"math/big"
 
-	"github.com/ethereum/go-ethereum/ethlog"
 	"github.com/ethereum/go-ethereum/ethutil"
+	"github.com/ethereum/go-ethereum/logger"
 )
 
-var vmlogger = ethlog.NewLogger("VM")
+var vmlogger = logger.NewLogger("VM")
 
 type Type int
 
diff --git a/websocket/client.go b/websocket/client.go
index 1ff0d3f648573ab3c4093cfbda8d2ae8e27b622f..d961816e8dc4f385827d5a33d4ae67073152944d 100644
--- a/websocket/client.go
+++ b/websocket/client.go
@@ -73,13 +73,13 @@ func (c *Client) Listen() {
 
 // Listen write request via chanel
 func (c *Client) listenWrite() {
-	logger.Debugln("Listening write to client")
+	wslogger.Debugln("Listening write to client")
 	for {
 		select {
 
 		// send message to the client
 		case msg := <-c.ch:
-			logger.Debugln("Send:", msg)
+			wslogger.Debugln("Send:", msg)
 			ws.JSON.Send(c.ws, msg)
 
 		// receive done request
@@ -93,7 +93,7 @@ func (c *Client) listenWrite() {
 
 // Listen read request via chanel
 func (c *Client) listenRead() {
-	logger.Debugln("Listening read from client")
+	wslogger.Debugln("Listening read from client")
 	for {
 		select {
 
@@ -112,7 +112,7 @@ func (c *Client) listenRead() {
 			} else if err != nil {
 				c.server.Err(err)
 			} else {
-				logger.Debugln(&msg)
+				wslogger.Debugln(&msg)
 				if c.onMessage != nil {
 					c.onMessage(c, &msg)
 				}
diff --git a/websocket/server.go b/websocket/server.go
index 1b4c00433f2565dc7a0ca99f11c8b0e6feae2915..5fd923a0c6b8c4fea6d857b2d29b71a0dab310c8 100644
--- a/websocket/server.go
+++ b/websocket/server.go
@@ -3,12 +3,12 @@ package websocket
 import (
 	"net/http"
 
-	"github.com/ethereum/go-ethereum/ethlog"
+	"github.com/ethereum/go-ethereum/logger"
 
 	ws "code.google.com/p/go.net/websocket"
 )
 
-var logger = ethlog.NewLogger("WS")
+var wslogger = logger.NewLogger("WS")
 
 // Chat server.
 type Server struct {
@@ -68,10 +68,10 @@ func (s *Server) Err(err error) {
 }
 
 func (s *Server) servHTTP() {
-	logger.Debugln("Serving http", s.httpServ)
+	wslogger.Debugln("Serving http", s.httpServ)
 	err := http.ListenAndServe(s.httpServ, nil)
 
-	logger.Warnln(err)
+	wslogger.Warnln(err)
 }
 
 func (s *Server) MessageFunc(f MsgFunc) {
@@ -81,7 +81,7 @@ func (s *Server) MessageFunc(f MsgFunc) {
 // Listen and serve.
 // It serves client connection and broadcast request.
 func (s *Server) Listen() {
-	logger.Debugln("Listening server...")
+	wslogger.Debugln("Listening server...")
 
 	// ws handler
 	onConnected := func(ws *ws.Conn) {
@@ -102,7 +102,7 @@ func (s *Server) Listen() {
 		s := ws.Server{Handler: ws.Handler(onConnected)}
 		s.ServeHTTP(w, req)
 	})
-	logger.Debugln("Created handler")
+	wslogger.Debugln("Created handler")
 
 	go s.servHTTP()
 
@@ -118,7 +118,7 @@ func (s *Server) Listen() {
 			delete(s.clients, c.id)
 
 		case err := <-s.errCh:
-			logger.Debugln("Error:", err.Error())
+			wslogger.Debugln("Error:", err.Error())
 
 		case <-s.doneCh:
 			return