Mule Logs not showing - log4j

I'm trying to launch a Mule application I have written, but I cant seem to get the logs to show up when I run it from the console. When I look at the log file, I see the Mule loading process (assuming I am using the app not the service mode) but then the log goes blank. Note that the log is visible when I'm using Mule Eclipse IDE.

Sounds like your app logging configuration overrides the global one, but is also not doing what you expect. Add -M-Dlog4j.debug switch to the Mule command line to see where rogue log4j config file might be coming from.

To properly log Mule messages into a log file, you should have a category definition in your log4j.properties and refer to that in your Mule flow as:
<logger level="INFO" category="your_custom_category" message="#[payload]"/>

Try to restart the entire machine. It sounds like an Eclipse problem not a problem with your program.

May be you have not properly placed the properties file and jar file.
Place
"log4j.properties" in "WEB-INF/classes"
and copy
log4jx.y.z.jar to "WEB-INF/lib".

Related

(Azure DevOps) Command Line Script .exe Console messages not visible in logs

I'm trying to run an .exe during a release pipeline on Azure DevOps.
In order to do so, I'm using a Command Line Script task where i just "invoke" the .exe file.
It works as it's correctly launched but i cannot see the output of the .exe (that is a .net framework 4.7.2 Console Application).
I've used a simple "Console.WriteLine()" method in the Console App in order to dump the messages. Obviously, on local machine it correctly writes messages on the console output. On Azure DevOps...just the Std Errors.
Why? How could I dump application messages to the task log?
Thanks
My bad. After different tries and retries i've found that the problem was related to a wrong dependency (resolved via reflection at runtime) that was causing exceptions before any log was written.
So, in fact, it works as expected.

Log4j creates logfile on server but doesn't write to it

I'm working on a web application which is deployed on a glassfish server.
I wanted to implement the log4j framework. First, I tested everything on my local machine (local server) and it works perfect.
Now, i deployed it on a test environment and noticed two strange behaviours.
It creates two logfiles, one is named "server.log" and is created during the server restore function is executed. The other has the instace name, like "instance104.log" and is created while the server is starting.
But this is not the main problem. The main problem is that it doesn't write anything to any of those logfiles.
This is the logfile path from the log4j.properties:
log4j.appender.file1.File = /lfs/wwwmnt/appName/logs/project/${com.sun.aas.instanceName}.log
Does log4j need a initialization for writing logs to logfiles when it's on remote servers? Do I have to add the log4j jar to the remote sever?
Like I said, it works perfect on local evironment but on the test it just creates the logfile but doesn't write anything to it...
So I figured out it was a problem with the clusterDomain domain.xml file. The configuration tags were missing ( ), and I couldn't configure them - in our business envoronment only the DevOps can do that.
Busienss processes are a pain..

Whether PostSharp log attribute support ansyc meathed and how to use it to write the log to a log file?

I want to know whether the log attribute of Postsharp supports ansyc method?
I want to use the log attribute to write log infos to a file.
Can you give me a demo to show me how to write log infos to a file by using log4net?
Log attribute doesn't support async methods. You can apply it to them but it doesn't understand underlying state machine so result could be quite disappointing (e.g. method exit will be logged before first await).
Adding log aspect is easy when you use PostSharp Tools for Visual Studio. Just place the caret over code element identifier (like class name or namespace) and open smart tag (or lightbulb in VS2015), select Add logging... and walk through the wizard. It is pretty straightforward.
PostSharp itself supports only logging to console and trace. As mentioned in comments you can select other backends like log4net or nlog to store log output in files (or anywhere else).
How to configure log4net is well described here and how to configure nlog is described here.

Log4j sorting logs

I am running one jar on unix machine and takes output of it on windows machine program using JSCH. So, i am creating log file on unix machine this will be detailed log file of jar present on unix.So, here i want to print some restricted output on unix console and take it on my windows application after executing the JAR file and all other info will go into detailed log file.So how i will print restricted output on console using log4j? what i need to do to achieve this? can anybody gives example of this?
You have to configure 2 different "appenders": a ConsoleAppender and a FileAppender, then you can direct output to one of them or both. To select which appender will receive a log item you can discriminate on logging priority (for example console could receive only ERROR and FATAL items, the log file could receive everything) and/or the class or package producing that log item. The log4j intro documentation page explains how to make this configuration.

Log4j - log file per package

I am using log4j and I cant figure out, how to create log file for specific classes (in my case for security messages).
I want to have one global log, where I will log everything (INFO), and some package specific log files for debugging, testing and security of some parts of my app.
For instance I want to log only events from LoggerListener (Spring security) to file security.log, and only messages from my apps package cz.flexibla2 *to flexibla2.log* etc.
Thanks for your help.

Resources