์คํ ์ค๋ฒํ๋ก์ ๋ํ ์ด ์ค๋ ๋์ ์ค๋ช
๋ ๋๋ก window.onerror
๋ก ์ ์ก๋ ํน์ ์ด๋ฒคํธ๋ [object Event]
๊ฐ ๋ฉ์์ง๋ก ๊ธฐ๋ก๋๊ณ ๋ค๋ฅธ ๋ง์ ๊ฒ์ ๊ธฐ๋ก๋์ง ์์ต๋๋ค. Sentry๊ฐ ์ด๋ฌํ ๊ณ ๋์ Event
๊ฐ์ฒด๋ฅผ ๊ฐ์งํ๊ณ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฐพ์๋ด์ด Sentry์ ๊ธฐ๋ก๋ ๋ด์ฉ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ฒ๋ฆฌํ๊ณ ์์ ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค.
๋ก๊ทธ์ ํ ํน์ ์ํ์ ๋ค์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
ํ์ฌ Android ํด๋์ ํ(์: Samsung, HTC)์์์ฒ๋ผ ๋ณด์ด๋ Android 4.1~4.4์ Android ๋ธ๋ผ์ฐ์ ๊ฐ ์ด ๋ฌธ์ ์ ์ํฅ์ ์ ์ฌํ๊ฒ ๋ฐ๋์ง ํ์ธํ ์ ์์ต๋๋ค. Nexus ํด๋์ ํ๊ฐ ์ํฅ์ ๋ฐ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์ป์ ์ ์๋ ํ๋ฅญํ ๊ธฐ๋ฅ์ด๋ฉฐ ๊ตฌํํ๊ธฐ๊ฐ ์๋์ ์ผ๋ก ์ด๋ ต์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฒคํธ ๊ฐ์ฒด์ ์์ฑ์ ์ก์ธ์คํ๊ธฐ ์ํด message.toString() == '[object Event]'
$ ๋ฃจํ๋ฅผ ์คํํ ๋ค์ for-in
๋ฃจํ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํฉ๋๋ค. ์ด๊ฒ์ Android 4.1 - 4.4์์ ์ฌ์ดํธ์ ๋๋ฒ๊ทธ ๋ฌธ์ ๋ฅผ ๋๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
@d10 โ ์คํํด ๋ณด์์ง๋ง ์๋ํ๋์ง ํ์ธํ ์ค์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. BrowserStack์์ Android 4.1 โ 4.4๋ฅผ ์๋ฎฌ๋ ์ดํธํ๊ณ ๊ธฐ๋ณธ Android ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ์ง๋ง ์ค๋ฅ๋ฅผ ์ ๋๋ก ๋ณด๊ณ ํฉ๋๋ค.
๊ทธ๊ฒ์ ์ข์ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ ๋๋ค! ์ฐ๋ฆฌ๋ ์ด์ ๋ธ๋ผ์ฐ์ ์ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค!
์ด๊ฒ์ ๋๋ฅผ ๋ฏธ์น๊ฒ ๋ง๋ค์์ผ๋ฏ๋ก https://github.com/rollokb/raven-js/tree/feat/old-webkit-Event-handling ์ ๋ํ ํจ์น๋ฅผ ์์ฑํ์ต๋๋ค.
ํ ๋ฆฌํ์คํธ๋ฅผ ์ ์ถํ๊ธฐ ์ ์ ํ๋ก๋์ ํ๊ฒฝ์์ ์ ์ ํ ์คํธํด ๋ณด๊ฒ ์ต๋๋ค.
@rollokb โ ์ปค๋ฐ์ด ๋ฉ์ง๊ฒ ๋ณด์ ๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์์ฐ๋๋์ง ์๋ ค์ฃผ์ญ์์ค. ๋์ค์ ๋ง์คํฐ์ ๋ณํฉํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์์ฒญ๋! ๊ทธ๊ฒ์ ๋๋ฅผ ๋ฏธ์น๊ฒ ๋ง๋ค๊ธฐ๋ ํฉ๋๋ค! +1
ํ๋ก๋์ ์์ ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํธ์งํ๋ค:
์ ์๋ํ๋ ๊ฒ ๊ฐ์ง๋ง ๋ด๊ฐ ์ง์ ํธ๋ฆฌ๊ฑฐํ ์ด๋ฒคํธ์์๋ง ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ ํ ์ด๋ฒคํธ ๋ด์ฉ์ ๋ํ ์ ๋ณด๊ฐ ์ ํ ์์ต๋๋ค.
์ ์๋ํ๋ ๊ฒ ๊ฐ์ง๋ง ๋ด๊ฐ ์ง์ ํธ๋ฆฌ๊ฑฐํ ์ด๋ฒคํธ์์๋ง ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ ํ ์ด๋ฒคํธ ๋ด์ฉ์ ๋ํ ์ ๋ณด๊ฐ ์ ํ ์์ต๋๋ค.
๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
+ for (var property in event) {
+ if (event.hasOwnProperty(property)) {
+ options.extra[property] = event[property];
+ }
+ }
hasOwnProperty
๋ฅผ ํ์ธํ๋ฉด Event.prototype
์์ ํ์๋ ์์ฑ์ ์ป์ง ๋ชปํ ๊ฒ์
๋๋ค. ์ด๋ฌํ ์ํฅ์ ๋ฐ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํ
์คํธ์์ ์ํํ๋ ๊ฒ์ฒ๋ผ(์์ ์ด ์์ฑํ๋ Event
๊ฐ์ฒด์ ์ง์ ์์ฑ์ ๋ฐฐ์นํ๋ ๊ฒฝ์ฐ) ๋ฐ์ดํฐ๊ฐ ํ์๋์ง ์์ต๋๋ค.
๋ฐ๋ฉด์ ํด๋น ์ฒดํฌ๋ฅผ ์ ๊ฑฐํ๋ฉด ์ค๋ฅ์ ๊ด๋ จ์ด ์๋ ๋ง์ ์์ฑ์ด ํ์๋ฉ๋๋ค. ํ์ง๋ง ๊ทธ๋ฐ ๋ชจ์ต์ ๋ณผ ๊ฐ์น๊ฐ ์์์ง๋ ๋ชจ๋ฆ ๋๋ค.
๋น์ ์ด ์ณ์ ๊ฒ์ ๋๋ค. PhantomJS๋ก ํ ์คํธํ ๋ ๋๋ ์ด๊ฒ์ ์ฌ๋ก์กํ์ต๋๋ค.
์ง์ ์ ์
๋ฐ์ดํธํ์ต๋๋ค.
https://github.com/rollokb/raven-js/blob/feat/old-webkit-Event-handling/src/raven.js#L1109 -L1121
์์ํ. ๋ค์ ํ ๋ฒ, ์ด ๋ฌธ์ ์ ๋ํด ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ฃผ์ ์์ ์ฝ๊ฐ ๋ฒ์ด๋์ง๋ง ์ด ํ๋ก์ ํธ์ PhantomJS๊ฐ ์ด๋ป๊ฒ ๋ก๋๋๊ณ ์์ต๋๊น? ์ด๋ฒคํธ ์์ฑ์ ์๋ชป ์ฒ๋ฆฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค(์ฆ, ๋ชจ๋ Event props๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ด ๋๋ค).
kmiyashiro/grunt-mocha ๊ฒฝ์
https://github.com/getsentry/raven-js/blob/master/Gruntfile.js#L193
์ด๋ฒคํธ ์์ฑ์ ์๋ชป ์ฒ๋ฆฌํ๋ ๊ฒ ๊ฐ์ต๋๋ค(์ฆ, ๋ชจ๋ Event props๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ด ๋๋ค).
Chrome/๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์ ๊ด์ฐฐ๋๋ ๊ฒ๊ณผ ๋์ผํ๊ฒ ๋์ํ๋ Event ๊ฐ์ฒด๋ฅผ ์กฐ๋กฑํ ์ ์์ต๋๋ค. (์ด๋ฌํ ๊ฐ์ฒด๋ฅผ ๋ณด๋ด๋ ๋ ๊ฑฐ์ ๋ธ๋ผ์ฐ์ ๋ ๋น์ทํ๊ฒ ๋๊ปด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.)
๋์์ด ๋ ์ ํํ์ง ํ์ธํ๊ธฐ ์ํด Phantom2๋ฅผ ์คํํ๋ ํ ์คํธ๋ฅผ ์๋ํ ์๋ ์์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ์ง๊ธ 1.9.8์ ์คํํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
@rollokb โ ์ด์ ๋ํ ์์์ด ์์ต๋๊น?
์ค๋ Android 4์ Facebook Browser v80์์ ์๋ฐฑ ๊ฐ์ ํ์ผ์ ์ป์์ต๋๋ค. ์ ๋ง ์ค๋๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ ์ฃ ?
Android ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ Android 4.x์์ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ง์ด ๋ฐ์ํฉ๋๋ค.
์ค๋ Android 4์ Facebook Browser v80์์ ์๋ฐฑ ๊ฐ์ ํ์ผ์ ์ป์์ต๋๋ค. ์ ๋ง ์ค๋๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ ์ฃ ?
๋๋ "Facebook Browser"๊ฐ ๋ด๋ถ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌด์์ด๋ ๊ฐ์ Facebook์ ๊ฐ์ธ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ค๋ฅ๋ ์ฌ๋ฌ ๊ตญ์ ๋ฒ์ ์ Android ํด๋ํฐ์์๋ง ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ์ค๋ฅ๊ฐ ํ์๋๋ฉด ์ฅ์น ๋ชฉ๋ก์ ์ดํด๋ณด๋ฉด ๋ถ๋ฏธ/์์ ๋ชจ๋ธ์ด ์๋ Samsung GT-S8600๊ณผ ๊ฐ์ ์ฅ์น ์ฝ๋๊ฐ ์์์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ค์ "Chrome Mobile" ๋๋ "Android ๋ธ๋ผ์ฐ์ "(์ฌ์ฉ์ ์์ด์ ํธ๋ ์ฝ๊ฒ ์์กฐ๋จ)๋ผ๊ณ ์ฃผ์ฅํ๋ ๋ธ๋ผ์ฐ์ ์ ์ผ๋ถ ํฌํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ง ๋ค๋ฅธ ์ค๋ฅ ๊ฐ์ฒด ์๋ช ์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๋๋ ์ค๋ฅ๋ฅผ ์ฌํํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์์ง๋ง(์ฌ๋ฌด์ค์์ ์ฌ์ฉํ๊ธฐ ์ํด ์ด๋ฌํ ์ ํ ์ค ์ผ๋ถ๋ฅผ ๊ตฌ์ ํ๋ ค๊ณ ์๋ํ๋ ๊ฒ์ ํฌํจํ์ฌ), ์กฐ๋ง๊ฐ ๋ค์ ์๋ํด ๋ณผ ๊ฒ์ ๋๋ค.
๋๋ฌธ ๋ธ๋ผ์ฐ์ ์์๋ ์ด๋ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. Chrome 51.0.2704๊ฐ ์ค์น๋ Windows 10์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์๋ , ์๋ค์!
๋ํ ๋๋ Raven ๋ณด๊ณ ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
...
"exception": {
"values": [
{
"value": "[object Event]",
"stacktrace": {
"frames": [
...
]
}
}
]
}
Android์ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์ ์์ด์ ํธ๋
Mozilla/5.0 (Linux; U; Android 4.4.2; de-de; GT-N7100 Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
์ด๊ฒ์ ๋ํด +1
๋ฐ๋ผ์ 3.7.0๋ถํฐ [object Event]
๋ฐ ๊ธฐํ catch๋ ๋น ์ค๋ฅ ๊ฐ์ฒด์ ๋ํ ํฉ์ฑ ์ถ์ ์ ์์ฑํฉ๋๋ค. 3.7.0์ ์๋ํ๊ณ ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@benvinegar 3.7.0์ด ์ค์น๋์ด ์์ง๋ง ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ค์ ํดํน์ ์์ ์๋ฃจ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
Raven.install();
if (Raven._processException) {
const oldProcessException = Raven._processException;
Raven._processException = function (event, message) {
if (message && typeof message === 'object') {
// detect that it's an event
if (String(message) === '[object Event]') {
// message
message = stringifyEvent(message);
// type
event = event || 'event';
} else {
// stringify the other objects
try {
message = JSON.stringify(message);
} catch (e) {
//
}
}
arguments[0] = event;
arguments[1] = message;
}
return oldProcessException.apply(this, arguments);
};
}
function stringifyEvent (event) {
const data = {
eventPhase: event.eventPhase,
type: event.type,
isTrusted: event.isTrusted,
returnValue: event.returnValue,
timeStamp: event.timeStamp
};
if (event.target) {
data.target = {
src: event.target.src,
tagName: event.target.tagName || 'UNKNOWN_HTMLELEMENT',
className: event.target.className,
readyState: event.target.readyState
};
}
if (event.path) {
data.path = event.path.map((el) => {
const tagName = el.tagName || 'UNKNOWN_HTMLELEMENT';
const className = (el.className || '').replace(/\s+/, '');
// DIV.class-1.class-2
return `${ tagName }.${ className }`;
});
}
return JSON.stringify(data);
}
@webschik ์ด ์ค์ ์คํ์ฒ๋ผ ๋ณด์ ๋๋ค.
return `${ tagName }.${ className }`;
๊ทธ๋ฆฌ๊ณ ์ด ๊ฑด์ค์ด ํ์ฉ๋๋์ง ํ์ ํฉ๋๊น?
data.path = event.path.map((el) => {
UP: ์ด ์์ ์ผ๋ก "์๊ธฐ์น ์์ ํ ํฐ =>" ์ค๋ฅ๊ฐ ๋ฐ์ํจ
@webschik
@AlexanderMatveev , ES2015 ๊ตฌ๋ฌธ์
๋๋ค.
๋น์ ์ ๊ทธ๊ฒ์ ๊ต์ฒด ํ ์ ์์ต๋๋ค
@webschik ์ด ํดํน์ ์ถ๊ฐํ๋๋ฐ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฌ์ ํ "[๊ฐ์ฒด ์ด๋ฒคํธ]" ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@AlexanderMatveev , ์ด๊ฒ์ด ๋ด ํ๋ก์ ํธ์์ ์๋ํ๊ธฐ ๋๋ฌธ์ ์ด์ํฉ๋๋ค. ์๋ง๋ ์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์์ ๋ ๋ง์ ์กฐ์ฌ๊ฐ ํ์ํฉ๋๋ค
@webschik
์คํฌ๋ฆฝํธ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<script type="text/javascript" src="[raven.min.js version 3.7.0]"></script>
<script>
Raven.config('https://[...]@sentry.io/[...]', {
release: '[...]'
}).install();
</script>
<script type="text/javascript" src="[fix.js without first Raven.install() line]"></script>
@benvinegar 3.7.0์ด ์ค์น๋์ด ์์ง๋ง ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋น์ ์ ์ฌ์ ํ โโ๊ทธ๊ฒ์ ์ป์ ๊ฒ์ ๋๋ค. ์ฐจ์ด์ ์ ํฉ์ฑ ์คํ ์ถ์ ์ ์์ฑํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด window.onerror๊น์ง ๋ฒ๋ธ๋ง๋๊ธฐ ๋๋ฌธ์ ํฌ์ฐฉ๋๋ค๋ฉด ์คํ ์ถ์ ์ ๋์์ด ๋์ง ์์ ์ ์์ต๋๋ค(๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ํฌ์ฐฉ๋๋ ๋ฐฉ์์ ์๋ ค์ค ๊ฒ์ ๋๋ค).
ํธ์คํ
๋ Sentry for UA์์ Raven 3.6.1
์ ๋์ผํจ: Mozilla/5.0 (Linux; U; Android 3.1; en-gb; GT-P7500 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
๋ํ ์ฌ๋ฌ ์ด๋ฒคํธ๊ฐ ์์ผ๋ฉฐ ๋๋ถ๋ถ์ Android ๋๋ Facebook ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ํฉ๋๋ค. ์ต์ ๋ฒ์ ์ด์ด์ผ ํ๋ Facebook 95.0์์๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋๋ก์ด๋ 4. . ๋ฉ์ธ OS์ด๋ฉฐ ๋ณด๊ณ ๋ ๋ง์ ์ฅ์น๋ Samsung-GT[๋ฌด์ธ๊ฐ]์ ๋๋ค. 3.7.0 ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ํน๋ณํ ์ฅ์น๊ฐ ์๋ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ์์ด์ ํธ์์๋ ์ด๊ฒ์ ์ป์์ต๋๋ค.
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36
๋ ์ด๋ธ 3.9.0
์ฌ์ ํ 3.9.1์์ ํ๋ฃจ์ ์๋ฐฑ ๋ฒ, facebook ๋ฐ android browser.name์์ ๋ฐ์ํฉ๋๋ค.
์คํ ์ถ์ ์ด ์ ํ ์์ต๋๋ค.
๊ทธ๋ฅ ๋ฌด์ํด์ผ ํฉ๋๊น?
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค๊ณผ ๋๊ฐ์ต๋๋ค. ์ด ์ ๋ณด๊ฐ ๋์์ด ๋๋ค๋ฉด:
UA: Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-I8190L Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 [FB_IAB/FB4A;FBAV/87.0.0.17.79;]
๋ธ๋ผ์ฐ์ : Facebook 87.0.0
์ฌ๊ธฐ์์ ๋์ผ, ์ด๋ค ์๋ฃจ์ ?? :์์ค
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ์๋ค
ํ์ฌ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค... ์ด ์ค๋ฅ๊ฐ ๋ง์ด ๋ฐ์ํ๊ณ ๊ณง ๋ณด์ด ์๊ณ๊ฐ์ ๋๋ฌํฉ๋๋ค ๐
Windows 10์ Chrome 45์์ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์์ญ ๊ฐ์ง ๋ฐ์ํฉ๋๋ค.
raven 3.15.0, Facebook ๋ฐ Android ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ ํ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฅ ๋ฌด์ํด์ผ ํ ๊น์?
๋๊ตฌ๋ ์ง ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๊น? ์ ๊ฒฝ์ฐ์๋ ์ผํธ๋ฆฌ์์ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ฉ๋๋ค.
`[๊ฐ์ฒด ์ด๋ฒคํธ]
trimHeadFrames(./node_modules/raven-js/src/raven.js:562:1)
_logDebug(./node_modules/raven-js/src/raven.js:488:1)
G._promiseRejectionHandler(./node_modules/raven-js/src/raven.js:430:1)`
์ฒ๋ฆฌ๋์ง ์์PromiseRejection: true
์ฌ์ฉ์ ์์ด์ ํธ: Mozilla/5.0(Linux, U, Android 6.0.1, en-US, vivo 1610 Build/MMB29M) AppleWebKit/537.36(Gecko์ ๊ฐ์ KHTML) ๋ฒ์ /4.0 Chrome/57.0.2987.108 UCBrowser/12.5.8.1112 /537.36
์ฅ์น ์ ํ๊ตฐ: ์์ฒด 1610
์ฅ์น ๋ชจ๋ธ: 1610
์ฅ์น ๋ธ๋๋: ์์ฒด
์๋๋ก์ด๋ 6.0.1
UC ๋ธ๋ผ์ฐ์ 12.5.8
๋ด raven-js ํด๋ผ์ด์ธํธ ๋ฒ์ ์ 3.25.0์ ๋๋ค.
์ค๋ฅ ์คํฌ๋ฆฐ์ท์ ์ฒจ๋ถํ์ต๋๋ค(๋ง์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ์ฌ๋ฌ ๋ฒ ๋ฐ์).
์ด๋ ์ด๋ฒคํธ ํํธ ๋ฐ ์ฌ์ฉ์ ์ง์ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ SDK์์ ์์ ํ ์ ์์ต๋๋ค.
@kamilogorek
์ด๋ ์ด๋ฒคํธ ํํธ ๋ฐ ์ฌ์ฉ์ ์ง์ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ SDK์์ ์์ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์์ธํ ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋ฌธ์์ ๋ํ ๋งํฌ๊ฐ ์์ต๋๊น?
์ต์ํ ์ด๋ค ๋ฒ์ ์ด ํ์ํฉ๋๊น?
์ด ๋ฌธ์ ์ ๋ํ "์ด๋ฒคํธ ํํธ" ๋ฐ "์ฌ์ฉ์ ์ง์ ์ค๋ฅ ์ฒ๋ฆฌ" ์ค์ ์ ์ฝ๋ ์กฐ๊ฐ์ด ์๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
๊ฐ์ฌ ํด์!
@hiroshi ๋ https://github.com/getsentry/sentry-javascript/issues/1401#issuecomment -418631326์ ์ฐธ์กฐํ์ญ์์ค.
RC Today๋ก ์ถ์๋ ์๋ก์ด sentry-javascript SDK์ ๊ธฐ๋ฅ์
๋๋ค. raven-js/node๋ก ๋ค์ ํฌํ
๋์ง ์์ต๋๋ค.
์๋ ํ์ธ์, Sentry์์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๊ณ์ ํ์๋ฉ๋๋ค.
exception | Error: [object Event]
์คํ ์ถ์ ์ด ์ฐ๊ฒฐ๋์ด ์์ง ์์ผ๋ฉฐ ์ ์ฉํ ์ ๋ณด๋ ์์ต๋๋ค. LogRocket ์ธ์
์์ ์ฌ์ฉ์๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. Facebook ๋ฐ Google ํ๊ทธ ๊ด๋ฆฌ์์ ๋ํ ์ผ๋ถ ์ฐจ๋จ๋ ์์ฒญ์ด ํ์๋๋ฏ๋ก ์ฐจ๋จ ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์ค์น๋ ๊ฒ์ผ๋ก ์์ฌ๋ฉ๋๋ค.
์์ฃผ ์ค๋๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋๋ผ Chrome 75๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋ฐ๋ณต๋๋ ์ค๋ฅ์
๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์ ์ฌํญ์ด ์์ต๋๊น?
๊ฐ์ฌ ํด์
์ฐธ๊ณ : @sentry/browser ๋ฒ์ 5.3.0
@burtyish ์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ฒซ ๋ฒ์งธ ์ข์ ๋จ๊ณ์ ๋๋ค. 5.7.0์์ ์ด ๋์๊ณผ ๊ด๋ จํ์ฌ _๋ง์_ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ์ต๋๋ค.
@kamilogorek ๊ฐ์ฌํฉ๋๋ค!
์ด์ sentry.javascript.browser v5.12.1๋ก ์
๊ทธ๋ ์ด๋ํ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ ์ ์ตํ ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ ์ถ์ ๋ ์์ต๋๋ค!
@burtyish ๊ต์ฅํด! :)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@rollokb โ ์ด์ ๋ํ ์์์ด ์์ต๋๊น?