package logger

import (
	"fmt"
	"io"
	"log"
	"os"

	"github.com/ethereum/go-ethereum/ethutil"
)

func openLogFile(datadir string, filename string) *os.File {
	path := ethutil.AbsolutePath(datadir, filename)
	file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
	if err != nil {
		panic(fmt.Sprintf("error opening log file '%s': %v", filename, err))
	}
	return file
}

func New(datadir string, logFile string, logLevel int, logFormat string) LogSystem {
	var writer io.Writer
	if logFile == "" {
		writer = os.Stdout
	} else {
		writer = openLogFile(datadir, logFile)
	}

	var sys LogSystem
	switch logFormat {
	case "raw":
		sys = NewRawLogSystem(writer, 0, LogLevel(logLevel))
	default:
		sys = NewStdLogSystem(writer, log.LstdFlags, LogLevel(logLevel))
	}
	AddLogSystem(sys)

	return sys
}
='https://www.csie.ntu.edu.tw/~b01902062/git/freebsd-ports' title='freebsd-ports Git repository'/>
</head>
<body>
<div id='cgit'><table id='header'>
<tr>
<td class='logo' rowspan='2'><a href='/~lantw44/cgit/cgit.cgi/'><img src='/~lantw44/cgit-data/cgit.png' alt='cgit logo'/></a></td>
<td class='main'><a href='/~lantw44/cgit/cgit.cgi/'>index</a> : <a title='freebsd-ports' href='/~lantw44/cgit/cgit.cgi/freebsd-ports/'>freebsd-ports</a></td><td class='form'><form method='get'>
<input type='hidden' name='id' value='34b46fed501ecf923beb7a15997ceba6fd275b98'/><select name='h' onchange='this.form.submit();'>
<option value='2014Q1'>2014Q1</option>
<option value='2014Q2'>2014Q2</option>
<option value='2014Q3'>2014Q3</option>
<option value='2014Q4'>2014Q4</option>
<option value='2015Q1'>2015Q1</option>
<option value='2015Q2'>2015Q2</option>
<option value='2015Q3'>2015Q3</option>
<option value='2015Q4'>2015Q4</option>
<option value='2016Q1'>2016Q1</option>
<option value='2016Q2'>2016Q2</option>
<option value='2016Q3'>2016Q3</option>
<option value='2016Q4'>2016Q4</option>
<option value='2017Q1'>2017Q1</option>
<option value='2017Q2'>2017Q2</option>
<option value='2017Q3'>2017Q3</option>
<option value='2017Q4'>2017Q4</option>
<option value='2018Q1'>2018Q1</option>
<option value='2018Q2'>2018Q2</option>
<option value='2018Q3'>2018Q3</option>
<option value='2018Q4'>2018Q4</option>
<option value='2019Q1'>2019Q1</option>
<option value='2019Q2'>2019Q2</option>
<option value='2019Q3'>2019Q3</option>
<option value='2019Q4'>2019Q4</option>
<option value='2020Q1'>2020Q1</option>
<option value='2020Q2'>2020Q2</option>
<option value='2020Q3'>2020Q3</option>
<option value='2020Q4'>2020Q4</option>
<option value='2021Q1'>2021Q1</option>
<option value='2021Q2'>2021Q2</option>
<option value='2021Q3'>2021Q3</option>
<option value='2021Q4'>2021Q4</option>
<option value='2022Q1'>2022Q1</option>
<option value='2022Q2'>2022Q2</option>
<option value='2022Q3'>2022Q3</option>
<option value='2022Q4'>2022Q4</option>
<option value='2023Q1'>2023Q1</option>
<option value='2023Q2'>2023Q2</option>
<option value='2023Q3'>2023Q3</option>
<option value='2023Q4'>2023Q4</option>
<option value='2024Q1'>2024Q1</option>
<option value='2024Q2'>2024Q2</option>
<option value='2024Q3'>2024Q3</option>
<option value='2024Q4'>2024Q4</option>
<option value='2025Q1'>2025Q1</option>
<option value='2025Q2'>2025Q2</option>
<option value='2025Q3'>2025Q3</option>
<option value='branches/2014Q1'>branches/2014Q1</option>
<option value='branches/2014Q2'>branches/2014Q2</option>
<option value='branches/2014Q3'>branches/2014Q3</option>
<option value='branches/2014Q4'>branches/2014Q4</option>
<option value='branches/2015Q1'>branches/2015Q1</option>
<option value='branches/2015Q2'>branches/2015Q2</option>
<option value='branches/2015Q3'>branches/2015Q3</option>
<option value='branches/2015Q4'>branches/2015Q4</option>
<option value='branches/2016Q1'>branches/2016Q1</option>
<option value='branches/2016Q2'>branches/2016Q2</option>
<option value='branches/2016Q3'>branches/2016Q3</option>
<option value='branches/2016Q4'>branches/2016Q4</option>
<option value='branches/2017Q1'>branches/2017Q1</option>
<option value='branches/2017Q2'>branches/2017Q2</option>
<option value='branches/2017Q3'>branches/2017Q3</option>
<option value='branches/2017Q4'>branches/2017Q4</option>
<option value='branches/2018Q1'>branches/2018Q1</option>
<option value='branches/2018Q2'>branches/2018Q2</option>
<option value='branches/2018Q3'>branches/2018Q3</option>
<option value='branches/2018Q4'>branches/2018Q4</option>
<option value='branches/2019Q1'>branches/2019Q1</option>
<option value='branches/2019Q2'>branches/2019Q2</option>
<option value='branches/2019Q3'>branches/2019Q3</option>
<option value='branches/2019Q4'>branches/2019Q4</option>
<option value='branches/2020Q1'>branches/2020Q1</option>
<option value='branches/2020Q2'>branches/2020Q2</option>
<option value='branches/2020Q3'>branches/2020Q3</option>
<option value='branches/2020Q4'>branches/2020Q4</option>
<option value='branches/2021Q1'>branches/2021Q1</option>
<option value='branches/RELEASE_8_4_0'>branches/RELEASE_8_4_0</option>
<option value='branches/RELENG_2_1_0'>branches/RELENG_2_1_0</option>
<option value='branches/RELENG_2_2'>branches/RELENG_2_2</option>
<option value='branches/RELENG_9_1_0'>branches/RELENG_9_1_0</option>
<option value='branches/RELENG_9_2_0'>branches/RELENG_9_2_0</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/eslint-utils-1.4.3'>dependabot/npm_and_yarn/devel/electron4/files/eslint-utils-1.4.3</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.15'>dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.15</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.template-4.5.0'>dependabot/npm_and_yarn/devel/electron4/files/lodash.template-4.5.0</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2' selected='selected'>dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2</option>
<option value='main'>main</option>
<option value='master'>master</option>
<option value='svn_head'>svn_head</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>FreeBSD Ports (https://github.com/freebsd/freebsd-ports)</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/about/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/refs/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/tree/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/diff/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/stats/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/net-im/coyim'>
<input type='hidden' name='h' value='dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2'/><input type='hidden' name='id' value='34b46fed501ecf923beb7a15997ceba6fd275b98'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/net-im?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>net-im</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98'>coyim</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/log/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=34b46fed501ecf923beb7a15997ceba6fd275b98&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=8daacf222984173118c9a7e2f5b6060520249360'>Bump PORTREVISION after r517743 to force relinking.</a></td><td>dmgk</td><td><span title='2019-11-16 20:52:39 +0800'>2019-11-16</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=f0bfbaa93eb0336a74a6a233fd5463095331f993'>Drop nop INSTALLATION_DIRS pkgsrcism</a></td><td>tobik</td><td><span title='2019-10-18 21:07:37 +0800'>2019-10-18</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+0</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=851d5b5e2c000de3111806326c1aa47c427faf9b'>net-im/coyim: Updates the maintainer email.</a></td><td>fox</td><td><span title='2019-09-21 22:05:18 +0800'>2019-09-21</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=cd2ecefb9a68f89cab168b356e2ca543aee9d7c6'>net-im/coyim: Makefile cleanup</a></td><td>tobik</td><td><span title='2019-08-31 06:07:27 +0800'>2019-08-31</span></td><td>1</td><td><span class='deletions'>-19</span>/<span class='insertions'>+12</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=01937667a99ad7ce0fe80e148aef97dd7683f94c'>Convert all Go ports to USES=go</a></td><td>tobik</td><td><span title='2019-06-29 11:51:13 +0800'>2019-06-29</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=c1e8815af8ff10f96e058d4ac4a2e6d7d1254fe1'>net-im/coyim: Fix missing version number in About dialog</a></td><td>swills</td><td><span title='2019-06-08 08:51:35 +0800'>2019-06-08</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+8</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports/commit/net-im/coyim?h=dependabot/npm_and_yarn/devel/electron4/files/mixin-deep-1.3.2&amp;id=88c59d9f80019648ecaf370498cae2392b2dc7ea'>net-im/coyim: Fix GTK tag in Makefile</a></td><td>swills</td><td><span title='2019-04-30 17:09:07 +0800'>2019-04-30</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+4</span></td></tr>