huxi / lilith Goto Github PK
View Code? Open in Web Editor NEWLilith is a Logging- and AccessEvent viewer for Logback, log4j, log4j2 and java.util.logging
Home Page: http://lilith.huxhorn.de
License: GNU Lesser General Public License v3.0
Lilith is a Logging- and AccessEvent viewer for Logback, log4j, log4j2 and java.util.logging
Home Page: http://lilith.huxhorn.de
License: GNU Lesser General Public License v3.0
Hi again,
When attempting to build liilith, I get the following build exception.
:lilith-data-eventsource-xml:testClasses
:lilith-data-eventsource-xml:test
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
:lilith-data-eventsource-xml:check
:lilith-data-eventsource-xml:build
:lilith-data-logging:javadocJar
:lilith-data-logging:sourceJar
:lilith-data-logging:signArchives SKIPPED
:lilith-data-logging:assemble
:lilith-data-logging:compileTestJava UP-TO-DATE
:lilith-data-logging:compileTestGroovy
:lilith-data-logging:processTestResources
:lilith-data-logging:testClasses
:lilith-data-logging:test
de.huxhorn.lilith.data.logging.ThrowableInfoSpec > validate toString[2] FAILED
org.spockframework.runtime.SpockComparisonFailure at ThrowableInfoSpec.groovy:313
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
151 tests completed, 1 failed
:lilith-data-logging:test FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':lilith-data-logging:test'.
> There were failing tests. See the report at: file:///C:/Develop/Lilith/lilith/lilith-data/logging/build/reports/tests/index.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 2 mins 24.452 secs
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
C:\Develop\Lilith\lilith (master)
If I look in the report index.html file, I get:
Condition not satisfied:
str == expectedValue
| | |
| | java.lang.RuntimeException: Hi.
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:49)
| | at de.huxhorn.lilith.sandbox.Log4jSandbox.main(Log4jSandbox.java:86)
| | Caused by: java.lang.RuntimeException: Hi Cause.
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:60)
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:45)
| | ... 1 more
| | Suppressed: java.lang.RuntimeException
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:61)
| | ... 2 more
| | Suppressed: java.lang.RuntimeException: Single line
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:62)
| | ... 2 more
| | Suppressed: java.lang.RuntimeException: With cause and suppressed
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:63)
| | ... 2 more
| | Suppressed: java.lang.RuntimeException: Inner Suppressed
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:64)
| | ... 2 more
| | Suppressed: java.lang.RuntimeException: Inner Suppressed with Cause
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:65)
| | ... 2 more
| | Caused by: java.lang.RuntimeException: Inner Cause
| | ... 3 more
| | Caused by: java.lang.RuntimeException: Cause
| | ... 3 more
| | Suppressed: java.lang.RuntimeException: Multi
| | line
| | at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:67)
| | ... 2 more
| false
| 1 difference (99% similarity)
| java.lang.RuntimeException: Hi.\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:49)\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox.main(Log4jSandbox.java:86)\r\nCaused by: java.lang.RuntimeException: Hi Cause.\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:60)\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:45)\r\n\t... 1 more\r\n\tSuppressed: java.lang.RuntimeException\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:61)\r\n\t\t... 2 more\r\n\tSuppressed: java.lang.RuntimeException: Single line\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:62)\r\n\t\t... 2 more\r\n\tSuppressed: java.lang.RuntimeException: With cause and suppressed\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:63)\r\n\t\t... 2 more\r\n\t\tSuppressed: java.lang.RuntimeException: Inner Suppressed\r\n\t\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:64)\r\n\t\t\t... 2 more\r\n\t\tSuppressed: java.lang.RuntimeException: Inner Suppressed with Cause\r\n\t\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:65)\r\n\t\t\t... 2 more\r\n\t\tCaused by: java.lang.RuntimeException: Inner Cause\r\n\t\t\t... 3 more\r\n\tCaused by: java.lang.RuntimeException: Cause\r\n\t\t... 3 more\r\n\tSuppressed: java.lang.RuntimeException: Multi(-~)\nline\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:67)\r\n\t\t... 2 more\r\n
| java.lang.RuntimeException: Hi.\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:49)\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox.main(Log4jSandbox.java:86)\r\nCaused by: java.lang.RuntimeException: Hi Cause.\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:60)\r\n\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:45)\r\n\t... 1 more\r\n\tSuppressed: java.lang.RuntimeException\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:61)\r\n\t\t... 2 more\r\n\tSuppressed: java.lang.RuntimeException: Single line\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:62)\r\n\t\t... 2 more\r\n\tSuppressed: java.lang.RuntimeException: With cause and suppressed\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:63)\r\n\t\t... 2 more\r\n\t\tSuppressed: java.lang.RuntimeException: Inner Suppressed\r\n\t\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:64)\r\n\t\t\t... 2 more\r\n\t\tSuppressed: java.lang.RuntimeException: Inner Suppressed with Cause\r\n\t\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:65)\r\n\t\t\t... 2 more\r\n\t\tCaused by: java.lang.RuntimeException: Inner Cause\r\n\t\t\t... 3 more\r\n\tCaused by: java.lang.RuntimeException: Cause\r\n\t\t... 3 more\r\n\tSuppressed: java.lang.RuntimeException: Multi(\r)\nline\r\n\t\tat de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:67)\r\n\t\t... 2 more\r\n
java.lang.RuntimeException: Hi.
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:49)
at de.huxhorn.lilith.sandbox.Log4jSandbox.main(Log4jSandbox.java:86)
Caused by: java.lang.RuntimeException: Hi Cause.
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:60)
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.execute(Log4jSandbox.java:45)
... 1 more
Suppressed: java.lang.RuntimeException
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:61)
... 2 more
Suppressed: java.lang.RuntimeException: Single line
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:62)
... 2 more
Suppressed: java.lang.RuntimeException: With cause and suppressed
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:63)
... 2 more
Suppressed: java.lang.RuntimeException: Inner Suppressed
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:64)
... 2 more
Suppressed: java.lang.RuntimeException: Inner Suppressed with Cause
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:65)
... 2 more
Caused by: java.lang.RuntimeException: Inner Cause
... 3 more
Caused by: java.lang.RuntimeException: Cause
... 3 more
Suppressed: java.lang.RuntimeException: Multi
line
at de.huxhorn.lilith.sandbox.Log4jSandbox$InnerClass.foobar(Log4jSandbox.java:67)
... 2 more
at de.huxhorn.lilith.data.logging.ThrowableInfoSpec.validate toString(ThrowableInfoSpec.groovy:313)
Is there a trick for populating the NDC column in Lilith ?
(is there a way other than creating tickets to ask questions in github ?)
Maybe I'm being an idiot, but I can't see how to connect lilith to a remote host. I see "Open" and "Import" under the File menu.
I'm running 0.9.42.1.
Thanks!
test.zip
Please see the attached file for more information.
On Windows, when launching lilith.bat from Gradle script, both JAVA_HOME and JAVA_EXE are set, as a result, lilith.bat could not execute correctly and displayed below error
C:\test > gradle lilith > Task :lilith FAILED WARN: JAVA_HOME is set to an invalid directory. JAVA_HOME = C:\programs\jdk1.8.0_51 Please set the JAVA_HOME variable in your environment to match the location of your Java installation FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':lilith'. > Process 'command 'cmd'' finished with non-zero exit value 1 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 1s 1 actionable task: 1 executed
I've attached a SocketAppender on my application. If I run a snapshot of Lilith 8.1 from July it runs correctly.
If I run 8.1 "official" I see:
17:08:09,430 |-INFO in ch.qos.logback.classic.net.SocketAppender[SOCKET] - Dropping event due to timeout limit of [100 milliseconds] being exceeded
(as if Lilith isn't running...)
I've checked the configuration, but found nothing strange.
I would like to use Lilith as one window only (without lilith application logs), i.e. there shall not start a new view everytime I restart the application. Furthermore shall the column sizes and filters/exclusions be persisted. I need to do this with every new start of my application again. Also I would like to see my server and client logs (different socketAppenders that send to the same port) in the same window... Do I do somethink wrong?
I want to use the same log configuration for different log viewers, but cannot change the ports to listen to. Neither in Logback Beagle nor in Lilith. Why do all make this hardcoded? Of course one can change that in logback.xml and even add two socket appenders (stupid), but what if e.g. other services use the same ports? Never seen applications where ports cannot be changed. Maybe I'm missing something?
Hi,
Any chance publishing a new release?
Thank you.
Today, Lilith keep large volumes of customer data that are related to the events received post:
/.lilith/logs/*. lilith
This can quickly represent several gigabytes of data on disk.
Should be able to afford to keep this history while compressing the data (zip) on the client.
A purge of compressed sliding window data would be interesting (max 3 last month)
MBP:Java jkolobok$ open -a Lilith.app
LSOpenURLsWithRole() failed for the application /Applications/Lilith.app with error -10810.
We think we've found another bug.
This peace of code :
try {
throw new UnsupportedOperationException();
} catch( Exception ex ) {
getLogger().error( ex.getMessage(), ex );
}
would not be registered by Lilith and produce the following error :
java.lang.NullPointerException
at de.huxhorn.lilith.data.logging.protobuf.generated.LoggingProto$Message$Builder.setMessagePattern(LoggingProto.java:6585) ~[de.huxhorn.lilith.data.logging.protobuf-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.lilith.data.logging.protobuf.LoggingEventProtobufEncoder.convert(LoggingEventProtobufEncoder.java:269) ~[de.huxhorn.lilith.data.logging.protobuf-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.lilith.data.logging.protobuf.LoggingEventProtobufEncoder.convert(LoggingEventProtobufEncoder.java:499) ~[de.huxhorn.lilith.data.logging.protobuf-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.lilith.data.logging.protobuf.LoggingEventWrapperProtobufEncoder.convert(LoggingEventWrapperProtobufEncoder.java:117) ~[de.huxhorn.lilith.data.logging.protobuf-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.lilith.data.logging.protobuf.LoggingEventWrapperProtobufEncoder.encode(LoggingEventWrapperProtobufEncoder.java:70) ~[de.huxhorn.lilith.data.logging.protobuf-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.lilith.data.logging.protobuf.LoggingEventWrapperProtobufEncoder.encode(LoggingEventWrapperProtobufEncoder.java:48) ~[de.huxhorn.lilith.data.logging.protobuf-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.sulky.codec.DelegatingCodecBase.encode(DelegatingCodecBase.java:80) ~[de.huxhorn.sulky.codec-8.0.1-20151127.230227-2.jar:na]
at de.huxhorn.sulky.codec.filebuffer.DefaultDataStrategy.internalWriteElement(DefaultDataStrategy.java:143) ~[de.huxhorn.sulky.codec.filebuffer-8.0.1-20151127.230228-2.jar:na]
at de.huxhorn.sulky.codec.filebuffer.DefaultDataStrategy.addAll(DefaultDataStrategy.java:88) ~[de.huxhorn.sulky.codec.filebuffer-8.0.1-20151127.230228-2.jar:na]
at de.huxhorn.sulky.codec.filebuffer.CodecFileBuffer.addAll(CodecFileBuffer.java:476) ~[de.huxhorn.sulky.codec.filebuffer-8.0.1-20151127.230228-2.jar:na]
at de.huxhorn.lilith.eventhandlers.FileDumpEventHandler.handle(FileDumpEventHandler.java:51) [de.huxhorn.lilith-8.0.1-SNAPSHOT.jar:na]
at de.huxhorn.lilith.engine.impl.sourcemanager.EventPoller.run(EventPoller.java:97) [de.huxhorn.lilith.engine-8.0.1-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
When scrolling horizontally in the bottom window pane, part of the right-most text may not be redrawn. This issue manifests with wrapped and non-wrapped text.
Version: Lilith 0.9.43
System: OS X 10.8.5
JDK: Oracle JDK 1.7.0_21-b12
Suggestion:
Make the page selector in the preferences window more eye-catching, for example by using color to highlight it.
Another alternative might be to implement a vertical selector like IntelliJ IDEA has in its settings window.
Motivation:
When I was looking for some configuration setting like the font size, I was able to open the preferences window, but I couldn't find the settings I was looking for.
It was only after reading this issue #11 that I discovered that one is able to switch to other settings "pages" by selecting them at the top. I had opened the settings window multiple times, but I had overlooked the combox every single time.
If you don't look at the dropdown arrow at the very right of the window, you can easily mistake the combobox for a label, thus not recognizing that it's interactive.
Especially because the settings window appears very small with respect to the available settings (when you don't know that it has got multiple pages!), user are inclined to give up looking after the wanted setting.
Otherwise, thank you very much for sharing this great tool with us!
Possibility to split the internal view to display eg top table view and bottom view graphic
On the graph is it possible if you click on a point to automatically converge to the same line in table view ?
On the graph again can we display a summary of the number of events in ERROR / VARN...etc or for the current filter applyed on table view
When attempting to build lilith from a fresh source checkout, I get the following issue on a FAILED test... Any ideas? Thanks.
:sulky-groovy:classes
:sulky-groovy:jar
:sulky-groovy:javadoc
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
:sulky-groovy:javadocJar
:sulky-groovy:sourceJar
:sulky-groovy:signArchives SKIPPED
:sulky-groovy:assemble
:sulky-groovy:compileTestJava
:sulky-groovy:compileTestGroovy UP-TO-DATE
:sulky-groovy:processTestResources
:sulky-groovy:testClasses
:sulky-groovy:test
de.huxhorn.sulky.groovy.GroovyInstanceTest > refresh[0] FAILED
org.junit.ComparisonFailure at GroovyInstanceTest.java:159
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
12 tests completed, 1 failed
:sulky-groovy:test FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':sulky-groovy:test'.
> There were failing tests. See the report at: file:///C:/Develop/Lilith/sulky/sulky-groovy/build/reports/test
/index.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 56.006 secs
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
C:\Develop\Lilith\sulky (master)
There seems to be a bug with the versioncheck to start Lilith. I am using the newest version of OpenJDK8 (1.8.0_66-internal) and it is rejected as too old. Maybe the version check isn't correct.
As far as I can see every Ubuntu Wily based Distro currently uses the 1.8.0_66-internal version. It seems to be the most up to date version for Ubuntu 15.10 without adding additional PPAs. Lubuntu reports 1.8.0_66-internal-b17 as runtime environment and Xubuntu as well. Both using official Ubuntu repositories. Didn't test it with Fedora yet. Usually it should be enough to check for the version without the identifier and maybe adding a disclaimer that Beta or RC versions of Java aren't officially supported.
limux@xubuntu-vbox:~/Downloads$ java -version
openjdk version "1.8.0_66-internal"
OpenJDK Runtime Environment (build 1.8.0_66-internal-b17)
OpenJDK 64-Bit Server VM (build 25.66-b17, mixed mode)
http://i.imgur.com/HSqrSo7.png
The provided 8.0.1 snapshot didn't fix this behavior.
When I re-run the same application or source, I expect Lilith to remember the filters I had open from the previous run. Right I have to re-enter the filter every time.
If there is a UI option for this, it isn't obvious.
It seems new security feature introduced with lilith 8.0.0 blocks socket appender connections from Log4j2 socket appender.
The "Unauthorized deserialization attempt! {}" message is produced.
These two classes are missed:
whitelist.add("java.util.Collections$EmptyMap");
whitelist.add("org.apache.logging.log4j.ThreadContext$EmptyThreadContextStack");
I want to promote lilith in my company, but don't think I can do that until the splash screen contains naked niples. Nice picture for private use, but it prevents from using lilith in professional environments...
Not really a code issue, but... it's it about time to release 8.1.0? Last release was 18 months ago, and most recent commits are little more than cosmetics...
Hi huxi,
New idea to consider:
--> Ability to manage User Profiles predefined view
For example all views display only show messages with Level> = XXX or for specific views (using source name as criteria?)
Would have the choice of profile via a drop down menu in the menu bar.
I'm trying to programmatically configure Logback to use a RollingFileAppender
. Also I'd like to use ClassicLilithEncoder
as encoder.
Given that an Appender
can be added to a Logger
with the following method
addAppender(Appender<ILoggingEvent> newAppender)
Therefore the type parameter of my RollingFileAppender
must be ILoggingEvent
.
Unfortunately ClassicLilithEncoder
implements Encoder<LoggingEvent>
, so I cannot pass it to the setEncoder(Encoder<ILoggingEvent>)
of RollingFileAppender<ILoggingEvent>
.
Hi,
First of all: great piece of software here :) I have the following use-case for Lilith and wanted to ask if this is possible:
I have an application which is running on multiple hosts in my network environment. I want to collect all log messages of these application instances on a single machine. This works great with Lilith as it is and I collected experience with it.
Now is my question: is it possible to run Lilith with no GUI? I want to start Lilith as Log-Server on a pure command line based server and download in regular time periods the log files and check the downloaded logs with a different lilith instance.
Kind regards,
Felix
Hi,
I need to view log4j output files and this tool looks good for network access but not for files. Would that be a challenging add?
Also the splash.jpg might be a troublesome for people who would use this at work...
Thanks,
Mark
If a exclusion is added to e.g. a package all column sizes are resetted.
Can Lilith be started using webstart ?
First of all, the documentation is incosistent as is stated:
Lilith is listening for Log4j 2™ SocketAppender connections on port 4445.
and the code below a different port
<Socket name="Socket" host="localhost" port="4560" protocol="TCP">
However, with this code:
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class TestLog {
private static final Logger logger = LogManager.getLogger(TestLog.class);
public static void main(final String... args) {
logger.trace("Entering application.");
logger.trace("Exiting application.");
}
}
And this configuration
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
<Appenders>
<Socket name="LilithDev" host="10.1.10.96" port="4560" protocol="TCP">
<SerializedLayout />
</Socket>
<RollingFile name="RollingFile" fileName="/var/log/log4j2.log"
filePattern="/var/log/log4j2-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} %C{1} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="150 kB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<Syslog name="Splunk" host="10.1.30.36" port="514" protocol="TCP"/>
</Appenders>
<Loggers>
<Logger name="com.ups" level="trace">
</Logger>
<Root level="all">
<AppenderRef ref="LilithDev"/>
<AppenderRef ref="Splunk"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
Lilith 8.1 don't see anything... nor I have any lilith log that help me. I can see that the doors are open, but no connection is shown on the lilith window.
Hi,
Lilith works great on a local machine, but is it possible to receive logs from external server ?
Cheers.
Hi, so I'm evaluating Lilith and integrating it as a test in a server application. While doing that, I'm trying to figure out: Is the limitation to not connect to a remote host, e.g. with a ServerSocketAppender, intentional, or a architectural limitation?
The server in question won't always be connected to the local log viewer, so I don't see why it should basically poll for a connection every other moment. For the moment I'm probably going to write logs to files and transfer those around, but connecting to get a current view would obviously be easier.
Can we have a preferences settings for display text size in Table view ?
Type of font (Arial,Tahoma,verdana,..etc) would be appreciate as a new settings too
Lilith-0.9.45-SNAPSHOT fails to render log4j2 events.
Although socket server is listening, nothing renders.
➜ ~ sudo lsof -i :4445
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 52364 taorg 64u IPv6 0x37e3f8ceb2bfd67 0t0 TCP *:upnotifyp (LISTEN)
java 52364 taorg 92u IPv6 0x37e3f8ce961f867 0t0 TCP localhost:upnotifyp->localhost:49283 (CLOSE_WAIT)
java 52364 taorg 98u IPv6 0x37e3f8ceb2bd067 0t0 TCP localhost:upnotifyp->localhost:49313 (CLOSE_WAIT)
I have logs that sometimes contains unprintable characters (hexadecimal value 0x00, for example). In this case Lilith discards the record.
Hi,
Are there plans to support logback 1.4.1, slf4j 2.0.1, etc? log4j will soon release a log4j-slfj2-impl lib too.
Would it be possible to export the results of a filtered view or selection to HTML, CSV or other format?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.